问题
I am getting error only in IE7 as document.body
is null; when I debug with Microsoft script editor I am getting the error in the following line:
i.e.
document.body.appendChild(i)
Code:
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);
Can you inform me what I need to do to solve this issue?
回答1:
You could try
document.getElementsByTagName('body')[0].appendChild(i);
Now that won't do you any good if the code is running in the <head>
, and running before the <body>
has even been seen by the browser. If you don't want to mess with "onload" handlers, try moving your <script>
block to the very end of the document instead of the <head>
.
回答2:
It is working. Just modify to null check:
if(document.body != null){
document.body.appendChild(element);
}
Pointy's suggestion is good; it may work, but I didn't try.
回答3:
In 2019 you can use querySelector for that.
It's supported by most browsers (https://caniuse.com/#search=querySelector)
document.querySelector('body').appendChild(i);
回答4:
May also want to use "documentElement":
var elem = document.createElement("div");
elem.style = "width:100px;height:100px;position:relative;background:#FF0000;";
document.documentElement.appendChild(elem);
回答5:
If your script is inside head tag in html file, try to put it inside body tag. CreateElement while script is inside head tag will give you a null warning
<head>
<title></title>
</head>
<body>
<h1>Game</h1>
<script type="text/javascript" src="script.js"></script>
</body>
来源:https://stackoverflow.com/questions/5419733/document-body-appendchildi