subtilitățile innerHTML

innerHTML nu este la fel de simplu cum ar părea, și este plină cu unele dintre subtilitățile care pot crea confuzie novice și programator, uneori, cu experiență.







Verificați-le.

Pentru tabelele din IE9- - innerHTML read-only

În Internet Explorer, versiunea 9 și versiunile anterioare, innerHTML este read-only pentru elementele COL, COLGROUP, FRAMESET, HEAD, HTML, stil, masa, TBODY, TFOOT, THEAD, TITLUL, TR.

În special, este imposibil de elemente IE9- prisvoitinnerHTMLtablichnym, dar celulele (TD / TH).

Adăugarea innerHTML + = efectueaza dublajului

Sintactic, puteți adăuga text la innerHTML prin + =:

chatDiv.innerHTML + = "

Salutări!
„;

chatDiv.innerHTML + = "Cum vă simțiți?";

În practică, acest lucru ar trebui să fie utilizat cu mare precauție, pentru că, de fapt, nu există nici un plus și rescrierea:

În locul lui, acesta devine noua valoare a innerHTML.

Având în vedere că noua valoare este scris de la zero, toate imaginile și alte resurse vor fi reîncărcată. In exemplul de mai sus, a doua linie reîncarcă tongue.gif, care a fost înainte de aceasta.

În cazul în care chatDiv o mulțime de text, atunci repornirea va fi foarte vizibile.

Din fericire, există și alte modalități de a adăuga conținut fără a utiliza innerHTML.

Adăugarea innerHTML + = efectueaza dublajului

Sintactic, puteți adăuga text la innerHTML prin + =:

chatDiv.innerHTML + = "

Salutări!
„;

chatDiv.innerHTML + = "Cum vă simțiți?";

În practică, acest lucru ar trebui să fie utilizat cu mare precauție, pentru că, de fapt, nu există nici un plus și rescrierea:







În locul lui, acesta devine noua valoare a innerHTML.

Având în vedere că noua valoare este scris de la zero, toate imaginile și alte resurse vor fi reîncărcată. In exemplul de mai sus, a doua linie reîncarcă tongue.gif, care a fost înainte de aceasta.

În cazul în care chatDiv o mulțime de text, atunci repornirea va fi foarte vizibile.

Din fericire, există și alte modalități de a adăuga conținut fără a utiliza innerHTML.

Script-urile nu sunt executate

Dacă vinnerHTMLest tegscript- nu va fi executat

var elem = document.getElementById ( 'my');

Exemplu tag de închidere Acesta este împărțit în două linii, ca în caz contrar, browser-ul va crede că acest lucru este sfârșitul script-ul. Script-ul introdus nu este executat.

Excepție - IE<10, в нем вставляемый скрипт выполняются, если у него есть атрибут defer (это нестандартная возможность

var elem = document.getElementById ( 'my');

elem.innerHTML = „pentru IE