Копипаста из моего текущего тема MSDN, которая на самом деле никуда не денется...
У меня есть каскадный раскрывающийся плагин для jQuery, который создает массив всех фильтруемых в дочернем элементе, и когда родитель изменяется, дочерний элемент очищается, а затем повторно добавляется каждое совпадение. Нигде не было никаких проблем... до IE11, который не сохраняет innerHTML. Дочерний элемент выполняет фильтрацию правильно, так как сохраняется значение каждого , но не текст, в результате чего получается следующее: http://i.imgur.com/FVNJybj.png
Точно так же вы можете заметить, что пейджер говорит, что есть 4 элемента, но ничего не отображается. Эти данные загружаются через вызов AJAX, создается строка HTML, которая затем вставляется с помощью jQuery.html(). Я добавил код отладки, чтобы убедиться, что IE11 действительно правильно строит строку, однако в DOM фактически вводятся только элементы. Это можно увидеть здесь: [1]
Выбранная строка в консоли представляет собой сконструированную строку HTML, напечатанную через console.log() перед вставкой в DOM. Со стула мне кажется, что IE11 просто неправильно реализует функции управления HTML. Точно такое же поведение наблюдается при использовании либо строк HTML, либо квалифицированных объектов.
Это системная проблема. Из-за этого наша CRM непригодна для использования в IE11, а с этой функциональностью у IE6 даже не было проблем. Firefox и Chrome предсказуемо работают так, как ожидалось.
С тех пор я изменил плагин, чтобы использовать только vanilla JS при манипулировании , но поведение остается прежним. Ниже [2] приведен снимок экрана, который демонстрирует, что IE11 на самом деле правильно фильтрует и просто не сохраняет innerHTML при создании исходного объекта cascades
, поскольку SO не позволяет мне публиковать все нужные мне ссылки.
Живая демонстрация также включена в комментарий ниже.
Кто-нибудь когда-нибудь видел это раньше? Любые идеи?