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 代码将是这样的一行:

$('#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>

您需要确保在调用函数时加载了文档。

于 2011-11-11T14:16:44.327 回答