Интернет-проводник Dom элементы getElementById - PullRequest
0 голосов
/ 11 ноября 2011

В Internet Explorer 8, когда я пытаюсь скопировать Div из окна во всплывающее окно, метод getElementById возвращает не элементы DOM, а простые элементы. Я не могу вызвать appendChild для таких элементов, потому что я получаю ошибки "Недопустимый аргумент". Что было бы решением скопировать div из parrent-окна в дочернее всплывающее окно.

Код, который я написал до сих пор, отлично работает на Chrome и Firefox, но не на IE.

этот код находится во всплывающем окне:

это вызывается при загрузке всплывающего окна

<body onload="initialize();">

     <div id='sourceDiv'></div>

</body>

function initialize(){
    var source = window.opener.document; 
    var myDiv = source.getElementById("myDiv"); 
    var destination = document.getElementById("sourceDiv");
    destination.appendChild(myDiv); 
}

следующий фрагмент из окна parrent

<div id='myDiv>
...
</div> 

1 Ответ

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

Почему вы не делаете это в jQuery? jQuery не зависит от браузера.

Код jQuery будет выглядеть так:

$('#sourceDiv').append($('#myDiv').html());

Хорошо, я только что попробовал тестовый проект, и этот код работает:

<script language="javascript">

    $(document).ready(function() {
        $('#sourceDiv').append($('#myDiv').html());
    });
</script>


<body>
    <div id='sourceDiv'></div>
    <div id="myDiv">myDiv text</div>
</body>

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

...