Доступ к родительскому элементу iframe в дочернем фрейме работает в Firefox, а не в Chrome - PullRequest
0 голосов
/ 23 декабря 2018

У меня есть два фрейма, названных mybinf и mymainf, которые загружают x.html и b.html соответственно.В x.html у меня есть этот код JavaScript для загрузки видео в mymainf.Javascript работает в Firefox и не работает в Google Chrome.Последнее вызывает исключение: «Uncaught DOMException: заблокировал фрейм с источником« null »из-за доступа к фрейму перекрестного происхождения» в строке «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;
}

1 Ответ

0 голосов
/ 25 декабря 2018

Это дубликат SecurityError: заблокирован фрейм с источником из-за доступа к фрейму перекрестного происхождения

Вы загружаете фрейм с другим источником.Как упоминает ответ Гирта на связанный вопрос,

Происхождение считается другим, если не поддерживается хотя бы одна из следующих частей адреса:

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

Его ответ также предлагает некоторые обходные пути.

...