开发者问题收集

Javascript:document.body.appendchild 具有空值

2015-02-12
3189

我正在加载我编写的 .js 文件。在该 .js 文件中,我正在创建一个像这样的 Iframe

var frmSource = "http://MYLINK.com/mypage.php?" + encodeURI(URLBuilder);
ifrm = document.createElement("IFRAME");
ifrm.setAttribute("src", frmSource);a
ifrm.style.width = 0+"px";
ifrm.style.height = 0+"px";
ifrm.setAttribute("frameBorder", "0");
document.body.appendChild(ifrm);

URLBuilder 包含指向下一页的 GET 变量
问题发生在 document.body.appendChild(ifrm);

我的错误是 javascript typeerror: null 不是对象(评估“document.body.appendchild”)

我怀疑问题是它试图将 iframe 附加到正文,但正文尚未正确加载。我目前只在 safari 中遇到此问题。

3个回答

如果您的脚本位于头部,则主体未定义 (null)。请将脚本放在页脚中。

2015-02-12

我已经做了类似的事情来配置我的 IFrame 创建并且它运行良好

 var urlWithParam = url + encodeURI(URLBuilder)
        var iframe = document.createElement('iframe');
        iframe.src = urlWithParam;
        iframe.id = "iframe_" + done;
        iframe.style.position = "relative";
        iframe.style.height = "100%";
        iframe.style.width = "100%";
        iframe.style.top = "0";
        iframe.style.left = "0";
        iframe.style.right = "0";
        iframe.style.bottom = "0";
        iframe.style.frameBorder = "0";
        iframe.style.borderStyle = "none";
        iframe.style.display = "none;";


        //if you want to do something after the Iframe load
        iframe.onload = function(event) {

        };
oqx
2015-02-12

将脚本移至主体下方。效果非常好。

SunilR
2015-07-10