我已经阅读了许多关于通过 javascript 代码检测弹出窗口阻止程序的帖子,但仍然无法找到我现在遇到的问题的答案。
问题是当目标 url 是外部网站时,我的浏览器 (IE8) 阻止访问窗口对象,或者换句话说,尽管允许打开弹出窗口,但 javascript 代码 window.open() 返回 null。相反,对于站点的本地页面,javascript 返回窗口对象。
因此,似乎 Internet 选项中某处的安全设置阻止了抓取打开窗口的处理程序;在这种情况下,有谁知道如何用 javascript 检测它?
我正在使用的代码如下,它无法检测到这种情况:
var popup = window.open("http://www.externalsite.com¶m1=value1", "_blank", "");
if (!popup) {
alert('Cannot preview this page because pop-ups are blocked by your browser');
} else {
if (popup != null) { popup.focus(); }
}