-1

我正在创建一个生成弹出窗口的脚本。但是大多数浏览器默认会阻止弹出窗口。我想在我的域上打开弹出窗口而不阻止弹出窗口。

var pop = window.open('about:blank', 'new_window_123', 'height=150,width=150');

// Detect pop blocker
setTimeout(function() {
if(!pop || pop.closed || pop.closed == 'undefined' || pop == 'undefined' || parseInt(pop.innerWidth) == 0 || pop.document.documentElement.clientWidth != 150 || pop.document.documentElement.clientHeight != 150){
pop && pop.close();
alert('Popups must be enabled.');
}else{
alert('Popups is enabled.');
pop && pop.close();
}}, 1000);

这个脚本告诉我弹出启用/禁用。有没有办法关闭浏览器上的弹出窗口阻止程序并运行弹出窗口

4

1 回答 1

6

无法通过 javascript 关闭弹出窗口阻止程序。如果有,那么所有执行弹出窗口的脚本都会这样做,而弹出窗口阻止程序将毫无用处。在大多数浏览器中,最终用户有一种方法可以允许当前站点的弹出窗口阻止程序,但这是您必须指示最终用户执行的操作,而不是您的页面可以自己执行的操作。

如果弹出窗口是直接响应用户点击而打开的(例如,弹出窗口是从点击处理程序中打开的),一些弹出窗口拦截器将允许弹出窗口。

解决此问题的一种更简单的方法(对于某些类型的内容)是停止使用弹出窗口,而是使用一个覆盖 div,该覆盖 div 浮动在同一窗口中的内容上方,因为该窗口未被弹出阻止程序阻止。

于 2013-10-14T06:18:04.757 回答