тънкости 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