2011-11-11 127 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

相關問題