Почему этот фантомный пустой тег отображается в инструментах разработчика IE?

#html #internet-explorer #firebug #ie-developer-tools

#HTML #internet-explorer #firebug #ie-developer-tools

Вопрос:

На <> вкладке HTML инструментов разработчика IE отображается фантомный пустой тег ().

Вот фрагмент фактического исходного кода HTML с удалением нескольких нерелевантных частей:

 <td><img src="1.jpg"></td>
<!--start mo script-->
<div id="mo">
<script type="text/javascript" src="mo.js"></script>
</div>
<script type="text/javascript">
setTimeout('timeOutMO()', 5000);
function timeOutMO() { 
   document.getElementById("mo").innerHTML = "";
}
</script>
<!--end mo script-->
<td><img src="2.jpg"></td>
  

Как в Firebug Firefox, так и в отладчике Chrome узлы отображаются так, как ожидалось, с <td> , <div> , <script> , и <td> узлы как братья и сестры.

Но в отладчике IE я получаю фантомный пустой узел, который все портит. Это выглядит так:

 <td>
   <img src="1.jpg">
</td>
<!--start mo script-->
<>
   <div id="mo">
      <script type="text/javascript" src="mo.js"></script>
   </div>
   <script type="text/javascript">...</script>
   <!--end mo script-->
</>
<td>
   <img src="2.jpg">
</td>
  

IE в основном обрабатывает div и script внутри пустого тега не как братьев и сестер td тегов, а как племянников и племянниц.

Кто-нибудь знает почему?

Комментарии:

1. Я не чувствую, что его отрицательное голосование особенно конструктивно. У него есть законный вопрос.

Ответ №1:

То, что вы делаете, нарушает стандарт HTML. Каждый браузер будет обрабатывать подобные странные случаи по-разному. Почему бы не обернуть его в td?

Комментарии:

1. Это не мой код. Это клиентский. Я просто пытаюсь с ним работать.

2. Блин. Какой уровень контроля у вас есть над ним?

3. Итак, вы говорите, что причина, по которой я получаю фантомный тег, заключается в том, что div тег и script тег находятся между двумя td тегами, а IE считает, что td между двумя тегами должен быть только td тег? Я думаю, это имеет смысл.

4. Да. Согласно спецификации HTML, единственными разрешенными тегами внутри строки таблицы являются td или th . Если происходит что-то другое, разработчики браузера должны решить, как с этим справиться.