web-dev-qa-db-fra.com

document.body.appendChild (i)

Je reçois une erreur uniquement dans IE7 en tant que document.body est nul, je débogue l'éditeur de script Microsoft obtenant une erreur dans la ligne suivante:

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);

Pouvez-vous me dire ce que je dois faire pour résoudre ce problème.

30
san

Ça fonctionne. Il suffit de modifier pour vérifier null: 

if (document.body! = null) { document.body.appendChild (element); }

La suggestion de Pointy est bonne. ça peut marcher, mais je n'ai pas essayé.

15
san

Tu pourrais essayer

document.getElementsByTagName('body')[0].appendChild(i);

Cela ne vous sera d'aucune utilité si le code est exécuté dans le <head>, et si vous exécutez avant le <body> a même été consulté par le navigateur. Si vous ne voulez pas manipuler les gestionnaires "onload", essayez de déplacer votre bloc <script> à la toute fin du document au lieu du <head>.

54
Pointy

En 2019, vous pouvez utiliser querySelector pour cela. 

Il est supporté par la plupart des navigateurs ( https://caniuse.com/#search=querySelector )

document.querySelector('body').appendChild(i);
1
Konrad Gałęzowski