Javascript document.getElementById в других фреймах

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

кадр 1:

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

кадр 2:

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

div.innerHTML='something'; 

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

Ответы

Ответ 1

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

window.frames["framename"]

а затем вы можете ссылаться на элемент в DOM с помощью

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

Ответ 2

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

if(parent.frames && parent.frames['framename']) {
   var elem = parent.frames['framename'].document.getElementById(...); 
   // etc
}

Ответ 3

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

var obj = $('#yourelementid', parent.frames["framename"].document);

Ответ 4

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

window.frames[0].document

Ответ 5

По какой-то причине

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

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

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

   document.getElementById('framename').contentWindow.document.getElementById('yourelementid');