2014-02-17 29 views
2

我使用window.open();創建了一個新窗口,我想關閉它。所以我做了這個代碼。window.open&關閉幾次

$('#open').on('click', function() { 
    var win = window.open("", "", "width=400, height=200"); 
    $newWindow = $(win.document.body); 
    // more code 
    $newWindow.find('#close').on('click', function() { 
     win.close(); // just works once 
    }); 
}); 

它在FF作品好,在Chrome中只有一次的作品(關閉按鈕停止工作),並在IE11(只是測試V11)不工作...

我在做什麼錯?即,如何解決這個工作跨瀏覽器?

jsFiddle

+0

看起來有記錄在控制檯IE11的錯誤:「拋出異常,而不是陷入」 – Igor

回答

1

問題是這一行:

$newWindow.html(content); 

您需要克隆的元素,你將它添加到彈出之前。否則,您將刪除原始元素並將其移至新位置。

$newWindow.html(content.clone()); 

更新小提琴:http://jsfiddle.net/XL7LR/10/

+0

啊哈,好點。這修復了Chrome。任何想法爲什麼IE仍然「不起作用」?在那裏我甚至沒有看到'關閉'按鈕 – Rikard

+0

我不認爲'win.document.body'在IE中有效。 –

+0

感謝您指出主要問題!現在我只需要知道__ [如何使它在IE上工作](http://stackoverflow.com/questions/21840660/reach-content-of-new-window-open)__ – Rikard