【问题标题】:call to window.open() returns null on IE 11 + Windows 8.1 Preview在 IE 11 + Windows 8.1 Preview 上调用 window.open() 返回 null
【发布时间】:2013-09-01 11:16:36
【问题描述】:

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

【问题讨论】:

  • 第一个参数不应该也是字符串吗?
  • 对不起,我会更新问题
  • 你需要调试。 wWidth、wHeight、wTop 和 wLeft 的值是多少?另外,是否正在打开一个窗口并且变量为空?
  • @ShadowWizard 宽度=1036,高度=700,上=34,左=165
  • window 没有像现在这样进入 IE 11。如果我打开兼容模式,windows 就会出现。

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


【解决方案1】:

在 Internet 选项中取消选中“启用保护模式”

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      Windows 10 上的 IE 11 存在同样的问题

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

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

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

      【讨论】:

        猜你喜欢
        • 2013-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-08
        相关资源
        最近更新 更多