对window.open()的调用在IE 11+Windows 8.1预览版上返回null

call to window.open() returns null on IE 11 + Windows 8.1 Preview

本文关键字:null 返回 11+Windows IE open window 调用      更新时间:2023-09-26

我正在做这样的事情,其中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()也返回null。我转到兼容模式,然后启动了页面,现在它给了我相同的WebPage错误,但我可以导航到页面。我希望它在没有兼容模式设置的情况下工作。用户可能不知道设置。

在互联网选项中取消选中"启用保护模式"

您的第一个参数应该是一个字符串,而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。允许弹出窗口可以解决问题。

与windows 10 上的IE 11存在相同问题

与@Khodor的变通方法不同,我这样做得到了预期的行为:

  1. 打开互联网选项弹出窗口
  2. 选择安全选项卡
  3. 选中"启用保护模式"
  4. 关闭并再次打开IE

我认为null是由"未找到"响应、ssl、不同域等引起的。我测试并记录了所有这些