2014-02-17 26 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