document.body.appendChild(i) (Programare, Javascript, Internet Explorer 7, Evenimente Dom)

san a intrebat.

Primesc eroarea doar în IE7 ca document.body este null; când fac debug cu editorul de scripturi Microsoft, primesc eroarea în următoarea linie:i.e.

document.body.appendChild(i)

Cod:

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

Mă puteți informa ce trebuie să fac pentru a rezolva această problemă?

Comentarii

  • De ce nu folosiți o versiune care nu este minificată pentru a face debug? –  > Por alex.
6 răspunsuri
Pointy

Ai putea încerca

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

Acum, asta nu te va ajuta cu nimic dacă codul rulează în <head>, , și rulează înainte de <body> să fie văzut de browser. Dacă nu doriți să vă încurcați cu gestionari „onload”, încercați să mutați <script> la sfârșitul documentului, în locul blocului <head>.

Comentarii

  • Bunăoară, a subliniat că rularea scriptului în <head>. Am tot primit un mesaj Cannot call method 'appendChild' of null din această cauză. Mutarea la sfârșitul documentului a rezolvat problema, deoarece „<body>” nu exista atunci când era rulat în cap. –  > Por pbojinov.
san

Funcționează. Doar modificați pentru a verifica nulitatea:

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

Sugestia lui Pointy este bună; s-ar putea să funcționeze, dar nu am încercat.

Konrad Gałęzowski

În 2019 puteți utiliza querySelector pentru asta.

Este acceptat de majoritatea browserelor (https://caniuse.com/#search=querySelector)

document.querySelector('body').appendChild(i);

Utkarsh Dhiman

Puteți appendChild la document.body dar nu și dacă documentul nu a fost încărcat. Așa că ar trebui să introduceți totul:

window.onload=function(){
    //your code
}

Acest lucru funcționează sau puteți face appendChild să depindă de altceva, cum ar fi un alt eveniment, de exemplu.

https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_doc_body_append

De fapt, puteți încerca să schimbați innerHTML din document.body funcționează…!

Vy Le

Dacă scriptul dvs. se află în interiorul etichetei head din fișierul html, încercați să îl puneți în interiorul etichetei body.CreateElement în timp ce scriptul se află în interiorul etichetei head vă va da un avertisment null

<head>
  <title></title>
</head>

<body>
  <h1>Game</h1>
  <script type="text/javascript" src="script.js"></script>
</body>

bob

De asemenea, poate doriți să utilizați „documentElement”:

var elem = document.createElement("div");
elem.style = "width:100px;height:100px;position:relative;background:#FF0000;";
document.documentElement.appendChild(elem);