我只在IE7中收到错误,因为document.body为null,我在调试Microsoft脚本编辑器时遇到以下错误: 即
document.body.appendChild(I) 代码:
function nm_eraseCookie(name){
nm_createCookie(name,"",-1)
}
var i=document.createElement('IMG');
i.src='//e.netmng.com/pixel/?aid=403';
i.width=1;
i.height=1;
document.body.appendChild(i);
nm_createCookie('nm_belgacom_bt',
escape('tv1=bun_intvtel;tv2=;tv3=;phone1=hbs_discoveryline;phone2=hbs_classical_line;phone3=;inet1=bun_nettvmob;inet2=hbs_adsl_res_plus;inet3=hbs_adsl_res_go;nm_banner=;nm_popin=hbs_discoveryline;'),183);
你可以告诉我我需要做些什么来解决这个问题。
答案 0 :(得分:54)
你可以尝试
document.getElementsByTagName('body')[0].appendChild(i);
如果代码在<head>
中运行,并且在之前运行,那么对于浏览器甚至看不到<body>
,这对您没有任何帮助。如果您不想使用“onload”处理程序,请尝试将<script>
块移到文档的最末端而不是<head>
。
答案 1 :(得分:16)
它正在发挥作用。只需修改为空检查:
if(document.body!= null){ document.body.appendChild(元件); }
Pointy的建议很好;它可能有用,但我没试过。
答案 2 :(得分:2)
您可以appendChild
至document.body
,但如果尚未加载文档,则不能。所以你应该
将所有内容放入:
window.onload=function(){
//your code
}
这可行,或者您可以使appendChild
依赖于其他事件,例如另一个事件。
https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_doc_body_append
事实上,您可以尝试更改innerHTML
中的document.body
,......
答案 3 :(得分:1)
在2019年,您可以使用querySelector。
大多数浏览器(https://caniuse.com/#search=querySelector)支持它
document.querySelector('body').appendChild(i);
答案 4 :(得分:0)
可能还想使用“ documentElement”:
var elem = document.createElement("div");
elem.style = "width:100px;height:100px;position:relative;background:#FF0000;";
document.documentElement.appendChild(elem);
答案 5 :(得分:0)
如果您的脚本位于html文件的head标签内,请尝试将其放在body标签内。 当脚本位于head标签内时,CreateElement将为您提供空警告
<head>
<title></title>
</head>
<body>
<h1>Game</h1>
<script type="text/javascript" src="script.js"></script>
</body>