Проблема AppendChild с Internet Explorer Javascript

Следующий фрагмент кода работает правильно в 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 ответа

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

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

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

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

Другие вопросы по тегам