Javascript ';卸载前';在歌剧中不触发

Javascript ';卸载前';在歌剧中不触发,javascript,jquery,opera,blur,Javascript,Jquery,Opera,Blur,我需要触发一些方法之前,我的网站生活。我正在使用 $(window).blur(blurFunc); 除Opera之外的所有浏览器都成功,Opera不会触发此事件 我做了一些研究发现 $(window).bind('beforeunload',blurFunc); 可能有用,事实上,这在一个网站上对我有用。但是,当在另一个站点中实现此功能时,未触发此事件(我能想到的站点之间没有任何差异(我检查过的jquery版本除外,未生效) 在Opera中的Live page之前如何触发函数?-在卸载

我需要触发一些方法之前,我的网站生活。我正在使用

$(window).blur(blurFunc); 
除Opera之外的所有浏览器都成功,Opera不会触发此事件

我做了一些研究发现

$(window).bind('beforeunload',blurFunc); 
可能有用,事实上,这在一个网站上对我有用。但是,当在另一个站点中实现此功能时,未触发此事件(我能想到的站点之间没有任何差异(我检查过的jquery版本除外,未生效)

在Opera中的Live page之前如何触发函数?-在卸载之前或模糊之前或任何其他函数都可以


Opera版本是12.16

您不需要模糊事件。它可能会触发,也可能不会触发,并且可能会在您不需要的时候触发

使用
beforeunload
,这在很大程度上取决于
blurFunc
中发生了什么,您还没有告诉我们。在
beforeunload
处理程序中可以做的事情非常有限。人们会遇到的一件大事是,如果您尝试执行ajax调用,如果它是异步调用(默认设置)坦白地说,我也不建议依赖同步,尽管我听说它们工作得足够好

beforeunload
是一个非常不寻常的事件。如果您想在用户离开页面时提示用户一条消息,我从来没有用jQuery这样做过,只是通过直接分配一个处理程序:

window.onbeforeunload = function() {
    var msg = "Really leave?";
    if (window.event) {
        window.event.returnValue = msg;
    }
    return msg;
};

请注意,我们实际上并不显示消息,我们只是将其作为函数的返回值(以及事件的
returnValue
属性,如果我们在IE上)传递给浏览器。这告诉浏览器以通常的“停留”或“离开”显示消息选项。

对于opera,您可以尝试使用onunload事件,这只是一个猜测,无论如何,我不知道您在这里尝试做什么,blurFunc???@a.Wolff-
onunload
$(window.bind('onunload'));
不起作用。这也与
blurFunc
正在做的事情无关-将其更改为do
a=1+1;
但仍然不起作用。应为
$(窗口)。绑定('unload'));
相反,但我真的不知道opera如何处理这类事件,我指的是这类事件的行为。编辑:我在你的评论中看到你正在发送一个ajax请求,然后忘了它,没有任何跨浏览器的解决方法。FF可以通过同步设置请求来处理,但是,例如,chrome不会t和Opera,嗯,我不知道……谢谢@t.J.Crowder的回答。我确实在使用
blurFunc
进行ajaxing,但是我确信事件不会因为某些元素而触发(仔细检查并将函数切换到
alert(1);
仍然不起作用)。还尝试了
窗口。在没有任何行为改变的情况下,用onbeforeunload
代替了
beforeunload
。@Ary:正如我所说,
beforeunload
是一个非常不寻常的事件,允许你做的事情非常有限。我不会惊讶地发现Opera不允许你做
警报
。@Ary:啊,loo像Opera 12这样的ks根本不支持在卸载之前执行
:Opera 15+支持它,但不支持早期版本。此事件不起任何作用,即使是
a=1+1;
(调试器在此方法中不会停止…@Ary:您看到我上面关于Opera 12的评论了吗?