javascript document.getElementById в других фреймах - PullRequest
17 голосов
/ 27 ноября 2009

Итак, у меня есть 2 кадра и я хочу получить доступ к элементу из одного кадра в другой:

кадр 1:

<div id='someId'>...</div>

кадр 2:

var div=document.getElementById('someId');

div.innerHTML='something'; 

это как-то не работает в Firefox, поэтому я хочу быть уверен, могу ли я получить доступ к элементу в другом кадре по его идентификатору?

Ответы [ 5 ]

22 голосов
/ 27 ноября 2009

Вы можете ссылаться на другой кадр, используя

window.frames["framename"]

и затем вы можете ссылаться на элемент в DOM, используя

window.frames["framename"].document.getElementById ( "yourelementid" );
12 голосов
/ 18 декабря 2014

Возможно, проблема в текущем кадре. Если window.frames['framename'] не работает, попробуйте parent.frames['framename'] для доступа к кадрам верхнего уровня.

if(parent.frames && parent.frames['framename']) {
   var elem = parent.frames['framename'].document.getElementById(...); 
   // etc
}
1 голос
/ 07 января 2016

У меня были проблемы с версией JS, но я смог использовать эти примеры для рабочей версии jQuery:

var obj = $('#yourelementid', parent.frames["framename"].document);
0 голосов
/ 26 мая 2019

Почему-то

window.frames["framename"].document.getElementById ( "yourelementid" );

не работал для меня.

Этот другой метод сделал:

   document.getElementById('framename').contentWindow.document.getElementById('yourelementid');
0 голосов
/ 13 октября 2017

Или, если вы хотите испытать удачу, вы можете просто использовать числовой параметр.

window.frames[0].document

...