4

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

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

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

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

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

4

2 回答 2

6

对于 IE10,如果在 Internet 选项->安全->安全级别下选中启用保护模式,则 window.open 返回一个 NULL 引用对象,并且该区域的区域不同,即在我的情况下,本地文件从 Intranet 打开一个弹出窗口。

当 yoursite.com 在弹出窗口中打开 someothersite.com 即 Internet->Internet 时,即使选中了启用保护模式,window.open 也会返回一个引用对象

于 2014-05-28T11:28:50.127 回答
-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.

如果您需要更详细的说明,请参见此处。//第五题。

于 2012-07-05T07:54:50.620 回答