0

Internet Explorer 8 で、Div をウィンドウからポップアップにコピーしようとすると、getElementById メソッドは DOM 要素ではなくプレーンな要素を返します。「無効な引数」エラーが発生するため、これらの種類のアイテムで appendChild を呼び出すことはできません。親ウィンドウから子ポップアップ ウィンドウに div をコピーするソリューションは何でしょうか。

これまでに書いたコードは、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); 
}

次のスニペットは親ウィンドウからのものです

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

1 に答える 1

0

jQueryでこれをやらないのはなぜですか?jQuery はブラウザーに依存しないように設計されています。

jQuery コードは次のような 1 行になります。

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

OK、テストプロジェクトを試したところ、このコードが機能します:

<script language="javascript">

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


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

関数を呼び出すときに、ドキュメントが読み込まれていることを確認する必要があります。

于 2011-11-11T14:16:44.327 に答える