Проблема AppendChild с Internet Explorer Javascript - PullRequest
2 голосов
/ 11 ноября 2011

Следующий фрагмент кода работает правильно в Firefox и Chrome, но в IE у меня болит голова.

var anotherDiv= document.getElementById("anotherDiv");
var destination = document.getElementById("mySourceDiv");    
destination.appendChild(anotherDiv);

Я пытаюсь получить элемент Div и поместить его в другой div. Я получаю сообщение об ошибке (в консоли отладки в IE), похожее на «интерфейс не поддерживается», и указывает на строку appendChild. То, что я видел, это то, что тип переменной назначения - это объект, а не элемент DOM.

Что я могу сделать, чтобы добавить anotherDiv в mySourceDiv? Я пытаюсь это в IE 8.

Ответы [ 2 ]

0 голосов
/ 11 ноября 2011

Вам, вероятно, понадобится что-то вроде importNode, существуют различные кросс-браузерные решения.Проблема в том, что на каждом узле есть соответствующий объект документа, в IE, и так называемая безопасность не может хорошо перемещаться из одного документа в другой.

Итак, по сути, он выполняет глубокое клонирование, ноРазница между использованием cloneNode заключается в том, что cloneNode также устанавливает документ, который вам не нужен.

Это может привести вас в правильном направлении: Поддержка IE для DOM importNode

0 голосов
/ 11 ноября 2011

Я бы рекомендовал использовать библиотеку, разработанную для того, чтобы разобраться в несовместимости браузера.Я лично нашел jQuery довольно хорошим.jQuery имеет функцию append .

...