我有两个框架,分别名为mybinf和mymainf,分别加载x.html和b.html。在x.html中,我具有此javascript代码,可将视频加载到mymainf中。该javascript在Firefox中有效,而在Google chrome中不可用。后者导致异常,“未捕获的DOMException:在行“ var mframe = ...”处阻止了源为“ null”的帧访问跨源帧“。如何解决此问题或如何编写跨浏览器兼容的代码?
<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;
}
答案 0 :(得分:0)
这是SecurityError: Blocked a frame with origin from accessing a cross-origin frame
的副本您正在加载其他来源的iframe。正如盖尔特(Geert)对链接问题的回答所述,
如果未保留地址的以下至少其中之一,则认为来源不同:
<protocol>://<hostname>:<port>/path/to/page.html
他的回答还提出了一些解决方法。