Andrew Kulinich ([info]4vanger) wrote,
  • Music: Beethoven - Violinkonzert op 61/1 Satz

грёбаный IE

Эксплорер, каким-то хреном, не понимает выставление innerHTML для <table>.
Уже промолчим про то, что он зачем-то автоматически создаёт <tbody> внутри себя. И запихивать TR-ы надо именно в него, иначе они не показываются.

Кстати, прикольный баг Мозиллы. Код для воспроизведения под катом.

Проявляется в моей Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7
<html>
 <head>
  <style type="text/css">
#target tr{
 background-color: #69C;
}
  </style>
 </head>
<body>
<table style="background-color: black; width: 200px; color: white" cellpadding="0" cellspacing="1" id="target"></table>
<script type="text/javascript">
 var table = document.getElementById('target');
 
 // uncomment this to have error in IE
 // table.innerHTML = "";
 
 if(/msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent))
  table = table.getElementsByTagName('tbody')[0];

 for(i = 0; i < 100; i++){   var tr = document.createElement("tr");   var td = document.createElement("td");   td.appendChild(document.createTextNode("test"));   tr.appendChild(td);   table.appendChild(tr);      if(i % 10 == 0)    alert("rows inserted and deleted: " + i)

  table.removeChild(table.firstChild);  } </script> </body> </html>


Для тех кто не понял прикола - в конце таблица остаётся совешенно пустой - в ней нету ни одного элемента.
А чёрное пространство - это остатки cellspacing-ов. Видимо при удалении строчек мозилка забывает их чистить

Create an Account
Forgot your login or password?
Facebook Twitter More login options
English • Español • Deutsch • Русский…