我们有一个nodeJS / angular 4网站,该网站显示来自第三方的iframe(powerBI Emebdded)。我们正在尝试开发一种功能,以允许最终用户对包含iframe内容的页面进行截图。
我们尝试了iframe2image库:https: //github.com/twolfson/iframe2image
但是我们面临着同一个原产地政策的问题:
ERROR DOMException: Blocked a frame with origin http://localhost:4200
from accessing a cross-origin frame
Run Code Online (Sandbox Code Playgroud)
由于我们无权访问iframe(这是PowerBI iframe生成的带有专用库的第三方内容)。我们无法通过将iframe中的window.document.domain设置为同一域来绕过该策略。
您有建议的解决方案吗?
我正在一个WordPress网站上工作,其中安装了很多wordpress插件.
wordpress网站上安装的插件有以下选项:
当我单击查看详细信息选项时,我在图像中显示如下所示的空白屏幕,但是当我在新窗口或选项卡中打开时,它可以正常工作.
在检查控制台时,我收到以下错误(单击"查看详细信息"无法在同一页面上打开时):
Blocked a frame with origin from accessing a cross-origin frame.
at Contents
at Function.map
at a.fn.init.n.fn.(anonymous function) [as contents]
and many other places.
Run Code Online (Sandbox Code Playgroud)
问题陈述:
我想知道我需要在wordpress中修改哪个文件才能解决此错误.这个错误似乎存在于每个wordpress插件中.它适用于新的选项卡或窗口,但无法在同一页面中工作.
我有如下一个元素的文档里面,我能得到通过iframe元素document.getElementById('iframe_id')
,但如何得到这个iframe中的元素?我试过了iframeElement.contentWindow
,返回的DOMWindow
没有属性.也试过iframeElement.docuemnt
和iframeElement.contentDocument
,两者是不确定的.我怎么才能得到它?我在实验中使用了最新的Chrome.
这是iframe元素
<iframe id='iframe_id'>
<html>
<body>many content here</body>
</html>
</iframe>
Run Code Online (Sandbox Code Playgroud) 我正在尝试打印由jspdf生成的pdf并加载到iframe上,但是我收到了错误消息:
"DOMException:通过访问跨源帧来阻止具有原始" http:// localhost:8084 "的帧."
这是我的代码:
<iframe id="pdf-prueba" name="pdf-box"></iframe>
function open(){
var pdf = new jsPDF('p', 'mm', [55, 5]);
var data = pdf.output('datauristring');
$('#pdf-box').attr("src", data).load(function(){
document.getElementById('pdf-box').contentWindow.print();
});
}
Run Code Online (Sandbox Code Playgroud) 我的问题似乎与此问题非常相似:Document.querySelector 返回 null,直到使用 DevTools 检查元素,但是存在一些非常令人困惑的显着差异,并且表明问题可能有所不同。
我正在尝试编写代码来替换 Google Chat 上输入框中的文本,因此我使用 document.querySelector。我需要的输入字段实际上是一个div
with contenteditable=true
,所以我有以下代码:
document.querySelector('div[contenteditable]');
此代码最初在浏览器控制台中返回 null,直到在检查器中单击该元素(单击检查器中的元素并使用检查器光标产生相同的结果)。该元素显然存在,因为我可以在其中键入文本,并且检查器显示它存在于我正在查询的所有属性中(甚至在检查器中单击它之前),尽管查询返回 null。使用检查器单击元素将立即修复此问题。
另外(我不确定这是否相关,但似乎它可能暗示了问题的本质),即使单击检查器中的元素以使查询返回一个元素,该查询的结果不能存储在变量中。
在Opera 11.01的JS安全问题中,从服务器A转移到B后,我了解到Opera具有一些"跨网络"保护.
我遇到了相同的js安全问题,我发现Opera 11.10("Barracuda")增加了禁用跨网络保护的首选项.我的歌剧是11.50但我找不到具体的偏好.
我是否误解了"跨网络"的含义?
非常感谢.
<iframe id="frame" width="100%" height="100%">
</ifrme>
Run Code Online (Sandbox Code Playgroud)
我想在这个iframe中渲染组件.有没有在iframe中创建html元素或渲染组件的选项?
new Vue({
el:'#frame',
store:store,
router:router,
render: component
})
Run Code Online (Sandbox Code Playgroud) 之前有人将这篇文章标记为另一篇文章的副本,例如:SecurityError:阻止了一个原始框架来访问跨文本框架这篇文章是不同的,因为它是关于在Chrome网络扩展的上下文中避免此错误,这意味着可能有独特的解决方案.
我正在向Firefox移植Firefox Quantum扩展程序.扩展将iFrame注入用户的当前网页.现在,扩展程序在Firefox Quantum中没有问题,你可以在这里找到它:https://addons.mozilla.org/en-US/firefox/addon/tl-dr-auto-summarizer/?src = search
iFrame的源代码是一个名为"inject.html"的HTML文件,它绑定在扩展名中.
这是注入iFrame的缩短(以避免使帖子过长)的代码.此代码位于用户当前选项卡的内容脚本中:
var iFrame = document.createElement("iFrame");
iFrame.id = "contentFrame";
iFrame.classList.add("cleanslate");
iFrame.style.cssText = "width: 100% !important; height: 100% !important; border: none !important;";
iFrame.src = browser.extension.getURL("inject-content/inject.html");
document.body.appendChild(iFrame);
Run Code Online (Sandbox Code Playgroud)
这是manifest.json
{
"manifest_version": 2,
"name": "TL;DR - Summarizer",
"version": "3.0",
"description": "Summarizes webpages",
"permissions": [
"activeTab",
"tabs",
"*://*.smmry.com/*"
],
"icons":
{
"48": "icons/border-48.png"
},
"browser_action":
{
"browser_style": true,
"default_popup": "popup/choose_length_page.html",
"default_icon":
{
"16": "icons/summarizer-icon-16.png",
"32": "icons/summarizer-icon-32.png"
}
},
"web_accessible_resources": [
"inject-content/inject.html",
"inject-content/cleanslate.css" …
Run Code Online (Sandbox Code Playgroud) javascript iframe same-origin-policy google-chrome-extension
我有一个Meteor应用程序,它允许用户通过meteor的accounts-facebook
包注册facebook oauth .我已经设置了所有必要的软件包和UI,并使用mLab数据库(沙箱)在Heroku(免费计划)上部署了应用程序.我已经设置了Facebook应用程序和身份验证,登录对我来说很好.我已成功通过我的Facebook多次在应用程序上注册.
然而,当我住在香港的一位开发人员(我在印度)试图做同样的事情时,该应用程序不会注册他,弹出浏览器在他允许访问他的公众后在控制台中打印出此错误资料 -
DOMException: Blocked a frame with origin "https://myapp.herokuapp.com" from accessing cross-origin frame.
这个错误似乎来自end_of_popup_response.js:18
于oauth
包中.
这个错误有什么特别的可修复原因吗?
我正在将网页作为产品的压缩文档包含在内,因此需要解压缩并且只能通过本地访问 file:///
网页已经存在,我只需要对它们进行整容.他们没有CSS.我想添加CSS.为了避免更改数千页,我想通过JavaScript插入CSS.页面在一个框架中(另一个框架是菜单).从父窗口向帧添加CSS会产生错误:例如,Uncaught DOMException: Blocked a frame with origin "null" from accessing a cross-origin frame.
在尝试访问框架的document
对象时.
有没有办法忽略以这种方式提供的网页的同源策略?
这个问题似乎并不重复,因为它想要使用localhost