我在Windows 7上使用IE8。参考了几个线程并了解在IE8中当我使用window.open弹出一个新窗口时,JavaScript window.open返回null值。
如果我以管理员身份运行IE或禁用保护模式,我会看到window.open返回预期的对象。
我正在寻找除上述选项之外的解决方案。对于这么小的功能(打开弹出窗口),我不能要求客户以管理员身份运行IE或禁用保护模式。
如果有任何解决方法,请告诉我。这将是一个很大的帮助。
首先,我想确保当用户在链接上多次点击并将焦点放在已经打开的窗口时,只打开一个窗口。为了实现这一点,我需要从window.open获取对象,以便我可以检查窗口是否已经打开并将焦点提供给已打开的窗口。否则打开一个新窗口。
答案 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。 //第五个问题。