0

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

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

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

那么为什么它不可能为闭幕事件。

4

3 回答 3

3

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

在浏览器窗口关闭时打开弹出窗口是 2000 年代初期“pop-under”广告的常见策略,它激怒了用户,这就是为什么 Firefox 和 IE6 的弹出窗口阻止程序会阻止它们,除非你要求用户在您的网站上禁用他们的弹出窗口阻止程序(我想您会发现他们中的大多数人都不知道如何做到这一点)。

你到底想完成什么?您希望用户看到的弹出窗口的内容是什么?您还尝试了哪些其他方法?

于 2012-09-27T21:46:56.563 回答
0

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

于 2012-09-30T13:59:58.167 回答
0

与您之前的问题完全相同....

我也会在这里发布我的答案......

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

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

至于事件......你可以做类似......

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 语句中返回某些内容,它将显示一个包含您的消息的确认框。

于 2012-09-27T22:08:54.297 回答