2011-11-11 123 views
0

在Internet Explorer 8下,当我尝试将窗口中的Div复制到弹出窗口时,getElementById方法不会返回DOM元素,而是返回普通元素。我无法在这些项目上调用appendChild,因为我得到“非法参数”错误。什么是将一个div从一个parrent窗口复制到一个子弹出窗口的解决方案。Internet Explorer Dom元素getElementById

我迄今为止编写的代码完全适用于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> 

回答

0

为什么你不在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> 

您需要确保文档加载当你打电话给你的功能。

+0

我已经试过用jQuery,但我得到同样的问题。这个地方来自jQuery库的异常,它试图在我的Div上调用appendChild。 – Romeo

+0

你在jQuery中使用哪些代码?我发布的代码?你能提供一个你的html代码片段吗? –

+0

目前我正在使用我在问题中发布的代码。我尝试了你发布的行和没有“.html()”的行 - 例如:$('#sourceDiv')。append($('#myDiv')。问题是,sourceDiv没有JavaScript方法appendChild; jQuery使用appendChild将我的对象追加到其实现中的父DOM元素中。 – Romeo

相关问题