window.open()仍然返回null

时间:2012-07-05 07:24:13

标签: javascript

我在Windows 7上使用IE8。参考了几个线程并了解在IE8中当我使用window.open弹出一个新窗口时,JavaScript window.open返回null值。

如果我以管理员身份运行IE或禁用保护模式,我会看到window.open返回预期的对象。

我正在寻找除上述选项之外的解决方案。对于这么小的功能(打开弹出窗口),我不能要求客户以管理员身份运行IE或禁用保护模式。

如果有任何解决方法,请告诉我。这将是一个很大的帮助。

首先,我想确保当用户在链接上多次点击并将焦点放在已经打开的窗口时,只打开一个窗口。为了实现这一点,我需要从window.open获取对象,以便我可以检查窗口是否已经打开并将焦点提供给已打开的窗口。否则打开一个新窗口。

2 个答案:

答案 0 :(得分:6)

对于IE10,如果在Internet Options-> Security->此区域的安全级别下选中了启用保护模式,则window.open将返回NULL引用对象,并且ZONE不同,即在我的情况下本地文件打开弹出窗口内联网。

当yoursite.com在弹出窗口中打开someothersite.com,即Internet-> Internet

时,即使选中了启用保护模式,

window.open也会返回参考对象

答案 1 :(得分:-1)

您可以使用 window.showModalDialog 作为 window.open 方法的替代或替代。

它比window.open更安全。它不允许用户单击父页面。

示例用法:

var myFeatures = "dialogWidth:1060px;dialogHeight:550px;resizable:yes";

window.showModalDialog(url,window,myFeatures);
       //Here window is an object, no need to assign or declare.

如果您想了解更多细节说明,请参阅Here。 //第五个问题。