有没有办法在每个浏览器中启用弹出窗口

时间:2013-10-14 06:11:32

标签: javascript jquery popupwindow

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

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);

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

1 个答案:

答案 0 :(得分:6)

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

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

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