Я встретил странное поведение в Firefox с помощью этого простого скрипта:
<html>
<head>
<script type="text/javascript">
window.setTimeout(function(){
var ifr=document.createElement("iframe");
ifr.src="about:blank";
document.body.appendChild(ifr);
var doc=ifr.contentDocument || ifr.contentWindow.document,
div=doc.createElement("div");
div.innerHTML="test";
window.setTimeout(function(){
doc.body.appendChild(div);
},500);
},500);
</script>
</head>
</html>
Этот фрагмент кода создает пустой iframe и добавляет его в тело текущей страницы, затем создает элемент div, содержащий простой текст, и добавляет его в тело iframe.
В каждом браузере (IE, Safari, Chrome, Opera) это работает, но в Firefox (я использую версию 3.6.3) div не появляется внутри iframe и не выдает никакой ошибки.
Я думаю, что где-то должна быть какая-то глупая ошибка, но я не могу ее найти, у вас есть идея?
PS: эти window.setTimeout
- это простой способ убедиться, что dom загружен на странице и в iframe.