Проблема 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 имеет функцию добавления.