Javascript window.open 在 Win7 x64 上的 32 位 IE8 中返回 null

标签 javascript internet-explorer windows-7 internet-explorer-8

我已经阅读了有关此主题的相关问题,但尚未找到解决此问题的方法。我有一个简单的 javascript 函数,它在单击链接时调用 window.open:

var newwindow;
function pop(url)
{
    newwindow=window.open(url,'','height=500,width=532');
    if (window.focus) {newwindow.focus();}
}

这在 Chrome、Firefox 上工作正常,甚至在 64 位 IE 8 上工作。但是,当我在 32 位 IE 8 上尝试这个时,我得到一个错误,提示 'newwindow' 为空或不是对象.

关于为什么这只会发生在 32 位 IE 8 中的任何想法?

我的直觉是它与 Windows 7 中的 UAC 有关(我运行的是 Win 7 x64),但即使在关闭保护模式并在兼容性 View 打开的情况下运行,我仍会收到错误消息。

我还想知道为什么 Windows 7 x64 同时带有 32 位和 64 位版本的 IE 8,以及为什么 32 位版本被固定到我的任务栏...

最佳答案

如果 url 在您当前域之外,Internet Explorer 似乎会返回 null。您可以通过先打开一个空页面来解决它,然后将窗口导航到实际的 url:

var newwindow;
function pop(url)
{
    newwindow=window.open('','','height=500,width=532');
    newwindow.location = url;

    if (window.focus) {newwindow.focus();}
}

关于Javascript window.open 在 Win7 x64 上的 32 位 IE8 中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1827616/

相关文章:

javascript - 使用 JavaScript 进行拖放警报

javascript - 在指令中使用链接函数附加不同​​的 HTML 元素

java - 为什么 IE 仅拒绝 127.0.0.1 的自签名本地主机证书,而 Chrome 接受它?

css - float 跨度增加了IE中div的宽度

windows - 使用 Windows 7 风格的消息框

windows - 在 win7 主机上运行的 VirtualBox Ubuntu 14 guest 无法使用桥接适配器访问互联网

javascript - 在 handlebars 模板中显示 hasMany ember 关系中的第一项

javascript - 使用 PHP 将值存储在数据库中 - 来自 JavaScript 的 Ajax 调用

html - IE-7 z-index 问题 - 下拉区域位于横幅下方,其内容未在 IE-7 中显示

windows-7 - 看不到我在telnet中输入的内容