#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
. Если происходит что-то другое, разработчики браузера должны решить, как с этим справиться.