Мы используем jQuery 1.5.1 на сайте, над которым я работаю.Недавно я обнаружил проблему с моим HTML в Internet Explorer 8
Проблема заключается в том, что свойства «nodeIndex» вставляются в DOM, предположительно, с помощью jQuery (см. Ниже другой вопрос StackOverflow, в котором упоминается nodeIndex).Свойства отсутствуют в источнике страницы - только в DOM, а затем проверяют его с помощью (потрясающего) инструмента разработчика IE8.
DOM в IE8:
<DIV nodeIndex="4">
<B nodeIndex="1">bold</B>
<BR nodeIndex="2">
<I nodeIndex="3">italics</I>
<BR nodeIndex="4">
<U nodeIndex="5">underline</U>
<BR nodeIndex="6">
</DIV>
DOM в FF5(и Chrome 12):
<div>
<b>bold</b>
<br>
<i>italics</i>
<br>
<u>underline</u>
<br>
</div>
Проблема в том, что DIV - это текст сообщения на форуме.Если пользователь хочет процитировать сообщение форума, html сообщения должен быть преобразован в BBCode (потому что старые сообщения форума используют теги BBCode для разметки), с сохраненной разметкой форматирования, и копируется в текстовую область, в которую пользователь записываеттекст для нового сообщения на форуме (включая цитируемый текст).
Используя JavaScript / jQuery, было бы просто заменить html-теги соответствующими тегами BBCode, но добавление свойства nodeIndex делает необходимым добавитьзамена регулярного выражения на свойство nodeIndex, которое выглядит как некрасивый хак.
Может кто-нибудь сказать мне, почему свойства nodeIndex добавляются в IE8 (и IE7), и это jQuery, который добавляет их - и что более важно: Могу ли я избавиться от них лучше, чем с помощью замены регулярного выражения?
Сайт, на котором я работаю, использует несколько различных сценариев JavaScript / jQuery, поэтому может возникнуть конфликт или, по крайней мере, некоторое непредвиденное поведение, вызванное сочетанием сценариев.
Редактировать: свойства недоступны, когда JavaScript отключен в IE.
Другой вопрос StackOverflow, в котором упоминается nodeIndex: Является ли nodeIndex допустимым свойством элемента DOM вIE?