тънкости innerhtml

innerHTML не е толкова просто, колкото може да изглежда, и е изпълнен с някои от тънкостите, които могат да объркат новак, а понякога и с опит програмист.







Проверете ги.

За маси в IE9- - innerHTML само за четене

В Internet Explorer версия 9 и по-рано, innerHTML е само за четене на Кол елементи, COLGROUP, фрейм, главата, HTML, стил, маса, TBODY, TFOOT, врекламния, заглавие, ТР.

По-специално, не е възможно IE9- prisvoitinnerHTMLtablichnym елементи, но клетки (TD / TH).

Добавянето innerHTML + = изпълнява дублиране

Синтактически, можете да добавите текст в innerHTML чрез + =:

chatDiv.innerHTML + = "

Поздрави!
";

chatDiv.innerHTML + = "Как си?";

На практика това трябва да се използва с повишено внимание, тъй като в действителност не съществува допълнение и пренаписване на:

На негово място, става новата стойност на innerHTML.

Тъй като новата стойност е написан от нулата, на всички изображения и други ресурси ще бъдат презаредени. В горния пример, втора линия презарежда smile.gif, който беше преди това.

Ако chatDiv много текст, а след рестарта ще бъде много забележим.

За щастие, има и други начини за добавяне на съдържание, без да използвате innerHTML.

Добавянето innerHTML + = изпълнява дублиране

Синтактически, можете да добавите текст в innerHTML чрез + =:

chatDiv.innerHTML + = "

Поздрави!
";

chatDiv.innerHTML + = "Как си?";

На практика това трябва да се използва с повишено внимание, тъй като в действителност не съществува допълнение и пренаписване на:







На негово място, става новата стойност на innerHTML.

Тъй като новата стойност е написан от нулата, на всички изображения и други ресурси ще бъдат презаредени. В горния пример, втора линия презарежда smile.gif, който беше преди това.

Ако chatDiv много текст, а след рестарта ще бъде много забележим.

За щастие, има и други начини за добавяне на съдържание, без да използвате innerHTML.

Скриптовете не се изпълняват

Ако vinnerHTMLest tegscript- той няма да бъде екзекутиран

Var ELEM = document.getElementById ( 'ми');

Пример затваряне маркер Тя е разделена на две линии, в противен случай браузърът ще мисля, че това е краят на скрипта. Поставената сценария не се изпълнява.

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

Var ELEM = document.getElementById ( 'ми');

elem.innerHTML = 'За IE