在子框架中访问父框架中的父iframe元素只能在Firefox中运行,而不能在Chrome中运行

时间:2018-12-23 20:26:26

标签: javascript google-chrome firefox iframe parent

我有两个框架,分别名为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;
}

1 个答案:

答案 0 :(得分:0)

这是SecurityError: Blocked a frame with origin from accessing a cross-origin frame

的副本

您正在加载其他来源的iframe。正如盖尔特(Geert)对链接问题的回答所述,

  

如果未保留地址的以下至少其中之一,则认为来源不同:

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

他的回答还提出了一些解决方法。