Ответ 1
Вы можете ссылаться на другой кадр, используя
window.frames["framename"]
а затем вы можете ссылаться на элемент в DOM с помощью
window.frames["framename"].document.getElementById ( "yourelementid" );
поэтому у меня есть 2 кадра и вы хотите получить доступ к элементу из одного кадра в другой:
кадр 1:
<div id='someId'>...</div>
кадр 2:
var div=document.getElementById('someId');
div.innerHTML='something';
это как-то не работает в Firefox, поэтому я хочу быть уверенным, могу ли я получить доступ к элементу в другом фрейме по его идентификатору?
Вы можете ссылаться на другой кадр, используя
window.frames["framename"]
а затем вы можете ссылаться на элемент в DOM с помощью
window.frames["framename"].document.getElementById ( "yourelementid" );
Проблема может быть в текущем фрейме, в котором вы находитесь. Если window.frames['framename']
не работает, попробуйте parent.frames['framename']
получить доступ к кадрам верхнего уровня.
if(parent.frames && parent.frames['framename']) {
var elem = parent.frames['framename'].document.getElementById(...);
// etc
}
У меня возникла проблема с версией JS, но я смог использовать эти примеры для рабочей версии jQuery:
var obj = $('#yourelementid', parent.frames["framename"].document);
Или, если вам хочется попробовать свою удачу, вы можете просто использовать числовой параметр.
window.frames[0].document
По какой-то причине
window.frames["framename"].document.getElementById ( "yourelementid" );
не работал для меня.
Этот другой метод сделал:
document.getElementById('framename').contentWindow.document.getElementById('yourelementid');