使用document.open()时在firefox中出错

时间:2011-06-24 06:56:25

标签: javascript

我现在可以用javascript打开iframe来将内容写入其中。它给了我一个安全错误,因为我没有使用任何跨站点的东西。

我用javascript创建iframe,我想用相同的javascript写入它。

CODE:

var iframe = document.createElement("iframe")
var doc = iframe.contentDocument || iframe.contentWindow.document;
doc.open();
doc.write("htmlcontent");
doc.close();

Firefox中的错误:

  

例外:安全错误“代码:”1000“nsresult:”0x805303e8(NS_ERROR_DOM_SECURITY_ERR)“位置:”未知“

在IE中正常工作

请告诉我上述错误的解决方案。

2 个答案:

答案 0 :(得分:0)

我不确定。尝试添加父体。

var iframe = document.createElement("iframe")

// add this
iframe.style.display = 'none'; // if you want
document.body.appendChild(iframe);
// add this

var doc = iframe.contentDocument || iframe.contentWindow.document;
doc.open();
doc.write("htmlcontent");
doc.close();

答案 1 :(得分:0)

var iframe = document.createElement("iframe");

在Firefox中,iframe.contentDocumentiframe.contentWindownull,然后将iframe插入页面,文档readyState为"uninitialized"但不是"complete"(与其他浏览器一样) ),你应该等待onload或DOMContentLoaded事件。

var iframe = document.createElement("iframe");
iframe.style.display = 'none'; // if you want
document.body.appendChild(iframe);
var doc = iframe.contentDocument || iframe.contentWindow.document;
if(doc.readyState == 'complete'){
    doc.open();
    doc.write("htmlcontent");
    doc.close();
}else{
    iframe.contentWindow.onload = function(){
        doc.open();
        doc.write("htmlcontent");
        doc.close();
    };
}