访问子框架中的父iframe元素在Firefox中有效,而在Chrome中无效



我有两个框架,名为mybinf和mymainf,分别加载x.html和b.html。在x.html中,我有这个javascript代码来将视频加载到mymainf中。javascript在Firefox中有效,在Google chrome中无效。后者导致异常,"Uncaught DOMException:Blocked a frame with origin"null"from access a cross-origin frame"at line"var mframe=…"。如何修复此问题或如何编写跨浏览器兼容的代码?

<div id="mysidenav" class="sidenav">
<div id="myinterface" class="interface">
<div id="mybind" class="bindiv">
<iframe id="mybinf" class="BinFrame" src="html/x.html" frameborder="no"></iframe>
</div>
</div>
</div>
<div id="mymain" class="main">
<iframe id="mymainf" class="MainFrame" src="html/b.html" scrolling="no"></iframe>
</div>
In x.html:
function loadbinquest() {
var site = "images/next.png";
var mframe = parent.frames['mymainf'];
mframe.src=site;
}

这是SecurityError的重复:阻止具有原点的帧访问跨原点帧

您正在加载一个具有不同来源的iframe。正如Geert对相关问题的回答所提到的,

如果地址的以下部分中至少有一部分没有维护,则认为来源不同:

<protocol>://<hostname>:<port>/path/to/page.html 

他的回答也提出了一些变通办法。

相关内容

最新更新