В Firefox содержимое фрейма, похоже, не распознается, если не было задано начальное содержимое.Самый простой способ решения этой проблемы показан в приведенном ниже коде:
//Note: ID is not necessary for this example
document.getElementById("FRAME2div").innerHTML = '<iframe id=IFRAME2 name=IFRAME2 ></iframe>';
var doc = frames["IFRAME2"].document;
//Trigger a page "load".
doc.open();
doc.close();
//Set innerHTML of the body tag.
doc.body.innerHTML = '<p>NETSCAPE</p>';
Другой метод состоит в установке для свойства src
значения javascript:" "
и регистрации обработчика событий одноразовой загрузки.Этот метод немного сложнее, поэтому я не буду описывать его более подробно.
Доступ к объекту окна каждого кадра можно получить через объект frame
по имени.
Итак, я рекомендую использовать следующий код:
frames['IFRAME2'].document.documentElement.innerHTML = "<body>...</body>";
document.documentElement
относится ккорневой элемент документа, обычно <html>
.Возможно, свойство body
для document
еще не готово, когда вы вызываете текущий код.Обращаясь к корневому элементу, эту проблему можно обойти.