我需要在生活我的网站之前触发一些方法。我正在使用
$(window).blur(blurFunc);
成功用于除Opera之外的所有浏览器,这不会触发此事件。
我做了一些研究发现
$(window).bind('beforeunload',blurFunc);
可能有用,确实这对我来说在一个网站上有用。但是,当在另一个站点中实现此事件时,此事件未被触发(我可以想到的站点之间没有任何差异(除了我检查过的jquery版本而且没有影响)。
如何在Opera中生活页面之前触发功能? - 要么在前载或模糊,要么任何其他功能都没问题......
Opera版本为12.16
答案 0 :(得分:0)
您不想要blur
事件。它可能会或可能不会发射,并且可能会在您不想要的时候发射。
使用beforeunload
,批次取决于blurFunc
中发生的事情,您还没有告诉我们。您可以在beforeunload
处理程序中执行的操作非常有限。人们绊倒的一件大事是,如果你试图做一个ajax调用,如果它是一个异步调用(默认),它就不会工作。坦白说,我也不建议依赖同步,但我听说它们运作良好。
beforeunload
是一个非常不寻常的事件。如果你想在用户离开页面时提示用户,我只是通过直接分配处理程序来完成jQuery,
window.onbeforeunload = function() {
var msg = "Really leave?";
if (window.event) {
window.event.returnValue = msg;
}
return msg;
};
请注意,我们实际上并未显示该消息,我们只是将其作为该函数的返回值(以及该事件的returnValue
属性)传递给浏览器,如果我们这样做的话在IE上)。这告诉浏览器用通常的" stay"来显示消息。或者"离开"选项。