打开新窗口的reach内容

7
我打开了一个新窗口。
var win = window.open("", "", "width=400, height=200");

我想要访问它的主体部分

var $windowBody = $(win.document.body);

然后使用像.find(), .html()这样的方法。

它在FF和Chrome上运行良好,但在IE上无法正常工作。也发现了一个与此相关的帖子

如何在IE中修复此问题?即如何使其跨浏览器工作?

jsFiddle - 请注意,在IE中关闭按钮从未显示。


你从IE浏览器中得到了什么样的错误? - Luis Masuelli
@LuisMasuelli,“异常被抛出但未被捕获”。在问题中添加了一个jsFiddle。 - Rikard
2
在对弹出窗口进行任何操作之前,您需要等待document.ready状态。JavaScript不会等待先前语法的完成。 - user1467267
@Allendar,你能否解释得更详细一些或者提供一个例子?你是指这个吗:http://jsfiddle.net/XL7LR/11/ - 使用 onload 事件? - Rikard
1
是的,应该是这样的。我目前不在Windows PC附近,所以无法立即测试它。看起来JSFiddle与这些机制不兼容。在我的MacBook上也无法正确显示。 - user1467267
通过在弹出窗口中添加一个带有window.onload脚本的函数,调用主体中定义的window.opener.onpopuploaded函数,是否可以实现此操作?我无法测试,因为我使用的是Mac电脑,没有安装Explorer浏览器。 - markcial
1个回答

1
请使用以下代码在IE中修复它:

Please use the below code to fix it in IE

var content = $('#content');

$('#open').on('click', function () {

    var win = window.open("", "", "width=400, height=200");
    $newWindow = $(win.document.body);    
    $newWindow.html(document.getElementById("content").innerHTML);    
    $newWindow.find('#close').on('click', function () {
        win.close();
    });
});

或者使用:
var content = $('#content');

// and then 
$newWindow.html(content);

这样做就可以了。谢谢! - Rikard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接