2013-10-14 71 views
-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); 

此脚本告诉我弹出启用/禁用。有没有办法关闭浏览器弹出窗口拦截器,并运行弹出

+0

你可以告诉用户启用弹出窗口,如果这是你的网站不可或缺的东西,但你的问题的答案是否定的。 – Vinay

+0

大多数网站只显示一条讯息,例如“看起来您正在使用弹出式窗口拦截器,请禁用此网站的拦截器以正常工作”或沿着这些线路。 –

+0

根据我的经验,如果一个网站在一个页面上发送超过4次的弹出窗口,大多数浏览器只会阻止弹出窗口。用户可以重新启用,如果他们发现他们需要它。 – bean5

回答

5

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

某些弹出式窗口拦截器在直接响应用户点击(例如,从单击处理程序中打开弹出式窗口)时将允许弹出窗口。

解决问题的方法之一就是停止使用弹出式窗口,而不是使用弹出式窗口拦截器阻止的覆盖div在同一个窗口中浮动。

+0

好的,但我创建了一个JavaScript,其中我添加了一个循环来打开加载/ onclick多个窗口。第一个窗口在每个浏览器中不阻塞地打开,其他的都是阻止。是什么原因。 – Burhan

+0

我想弹出新窗口就像farecompare.com – Burhan

+0

@Burhan - 打开多个弹出窗口被阻止,因为浏览器和用户认为这是不受欢迎的行为(我同意)。 – jfriend00

相关问题