Window.Open没有弹出窗口阻止程序

时间:2012-09-27 21:36:49

标签: asp.net jquery popup-blocker

我想在用户离开标签或关闭浏览器时打开一个弹出窗口,我可用的选项是window.open,但有了它,它要求弹出窗口阻止程序,如果没有启用,我尝试了所有可能的方法忽略弹出窗口拦截器,但是徒劳,我试过onunload,onbeforeunload,但它不起作用,我也尝试使用模式对话框,在标签/浏览器之前,我在onbeforeunload事件中使用它,但它显示了浏览器警报消息,我不想要,我的简单要求是,我需要一个弹出窗口(如果可能)或模式对话框,在标签/浏览器的关闭,但应该忽略弹出窗口阻止程序,我想用模态对话框,我不需要担心弹出窗口阻止程序,因为它不会是新窗口,但是当用户关闭选项卡/浏览器时,我将如何处理它。如果无法使用上述任何选项,任何人都可以帮助我处理任何其他可能的替代或有用的文章。

Edited Question
我使用下面的脚本,我可以在链接点击打开一个新的弹出窗口,没有弹出窗口阻止程序干扰它

$('a[href=http://www.google.com]').click(function(){
    window.open(this.href);
    return false;
  });

然后为什么不可能举行闭幕活动。

3 个答案:

答案 0 :(得分:3)

你不能 - 因为那是弹出窗口阻止程序所做的:它们会阻止弹出窗口(即调用window.open或调用target="_blank"链接),除非它直接响应用户鼠标操作。

在浏览器窗口关闭时打开弹出窗口是21世纪初“pop-under”广告的一种常见策略,它激怒了用户,这就是Firefox和IE6的弹出窗口拦截器阻止它们的原因,并且没有办法绕过它除非你要求用户在你的网站上禁用他们的弹出窗口拦截器(我认为你会发现他们中的大多数人都不知道如何做到这一点)。

无论如何,你想要完成什么?您希望用户看到此弹出窗口的内容是什么?您尝试了哪些其他方法?

答案 1 :(得分:0)

previous question ....

的完全重复

我会在这里发布我的答案,但是......

弹出窗口阻止程序旨在防止此行为。

我建议使用模态窗口而不是实际的浏览器窗口。我不认为这些被阻止,因为它们是在页面内打开的。

至于事件......你可以做点像......

window.onbeforeunload = function whatever() {
       //Do code here for your modal to show up.
 }

如果您只是尝试发出警告或者您可以做的事情

window.onbeforeunload = function showWarning() {
       returnString = 'Whatever you want your message to be....';
       return returnString;
 }

通过在onbeforeunload语句中返回一些内容,它将显示一个确认框,其中包含您的消息。

答案 2 :(得分:0)

如果打开弹出窗口的javascript代码是在用户的直接操作(如点击,按键,拖动等)上执行的,则弹出窗口阻止程序不会阻止弹出窗口的打开。