调用window.open()在IE 11 + Windows 8.1 Preview上返回null

时间:2013-08-29 06:40:35

标签: javascript asp.net-mvc internet-explorer windows-8.1

我正在做这样的事情,其中​​MyConfig是一个aspx页面。

   winOpen=window.open('/Account/Register','MyConfig','toolbar=no,status=no,location=no,menubar=0,resizable=yes,scrollbars=yes,width=' + wWidth + ',height='+ wHeight + ',top=' + wTop + ',left=' +wLeft);

winOpen.focus();

它返回null。它在chrome + WIndows 8.1预览中工作正常,但它在IE 11中不起作用。

修改

我在问题中又添加了一行,实际上该行失败了,因为window.open()返回null,因此是winOpen.focus()。我转向兼容模式,而不是启动页面现在它给了我相同的WebPage错误,但我能够导航到该页面。我希望它在没有兼容模式设置的情况下工作。用户可能不知道该设置。

3 个答案:

答案 0 :(得分:2)

取消选中互联网选项中的“启用保护模式”

答案 1 :(得分:0)

你的第一个参数应该是一个字符串,而你错过wHeight的加号:

winOpen=window.open('/Account/Register','MyConfig','toolbar=no,status=no,location=no,menubar=0,resizable=yes,scrollbars=yes,width=' + wWidth + ',height=' + wHeight + ',top=' + wTop + ',left=' +wLeft);

编辑:检查并确保您的IE允许在您用于测试的网站上弹出窗口。如果没有,并且弹出窗口没有打开,它将返回null。允许弹出窗口将解决问题。

答案 2 :(得分:0)

  

与Windows 10上的IE 11相同的问题

与@Khodor解决方法不同,我得到了预期的行为:

  1. 打开Internet选项弹出窗口。
  2. 选择安全标签。
  3. 选中“启用保护模式”。
  4. 关闭并再次打开IE。

我认为空值是由于“未找到”响应,ssl,其他域等引起的。我测试并丢弃了所有这些内容。

相关问题