我正在<iframe>我的HTML页面中加载一个并尝试使用Javascript访问其中的元素,但是当我尝试执行我的代码时,我收到以下错误:
SecurityError: Blocked a frame with origin "http://www.<domain>.com" from accessing a cross-origin frame.
Run Code Online (Sandbox Code Playgroud)
你能帮我找一个解决方案,以便我可以访问框架中的元素吗?
我正在使用此代码进行测试,但徒劳无功:
$(document).ready(function() {
var iframeWindow = document.getElementById("my-iframe-id").contentWindow;
iframeWindow.addEventListener("load", function() {
var doc = iframe.contentDocument || iframe.contentWindow.document;
var target = doc.getElementById("my-target-id");
target.innerHTML = "Found it!";
});
});
Run Code Online (Sandbox Code Playgroud) 我有一个加载在IFRAME中的网页,它在IE和Firefox中正常运行,但在Opera中没有.我讨厌哪个,因为我多年来一直是Opera的用户.我写了这个东西.:-)
问题是Opera没有加载构成页面的一些JavaScript文件.我怀疑这与页面本身是通过HTTPS加载的事实有关,而且包含的文件是通过HTTP从不同的主机和端口加载的.我相信Opera允许这样做,但是Dragonfly的Net选项卡甚至没有显示加载它们的尝试.
该页面是一个Rally "自定义应用程序",我无法控制它在IFRAME中加载或通过HTTPS加载的事实.我也无法控制包含的文件是从不同的主机加载,或者主机只支持HTTP的事实.所以我有点混淆内容.
除了其他东西之外,页面的HEAD元素包含(清理了一下):
<script src="http://www.example.com:81/common/jquery-1.4.2.js"></script>
<script src="http://www.example.com:81/common/jsTree/jquery.jstree.js"></script>
<script src="http://www.example.com:81/common/utils_jserror.js"></script>
<script src="http://www.example.com:81/common/utils_logging.js"></script>
<script src="http://www.example.com:81/common/utils_print_r.js"></script>
<script src="http://www.example.com:81/common/utils_rally_query.js"></script>
<script src="http://www.example.com:81/common/json2.js"></script>
<script src="/slm/js/slm.js"></script>
<script src="/slm/js-lib/dojo/rally-1.3.1/dojo/dojo.js.uncompressed.js"></script>
<script src="/slm/mashup/1.18/js/batch-toolkit.js"></script>
<script src="/slm/mashup/1.18/js/utilities.js"></script>
Run Code Online (Sandbox Code Playgroud)
所有的"/ SLM/......"的东西是越来越加载,并且NONE了"www.example ......"的东西.
有人知道我做错了什么吗?
如何在开发过程中禁用 Firefox 中的 Web 安全或如何解决 Firefox 中的 CORS 问题?
事情尝试但没有奏效: