4

我有一个文本框,并在其中附加了一个模糊事件。当用户关注页面中的其他元素时,我使用它来发送 Ajax 请求。当用户关闭浏览器或浏览器中的选项卡时,我希望 on-blur 事件也能触发。我不想使用卸载,因为它在某些浏览器中不起作用。窗口关闭时是否会触发 on-blur 事件,或者是否有任何方法可以在窗口关闭时发送 Ajax 请求。

4

3 回答 3

2

假设,您的 on-blur 事件发生在元素的“目标”类上。

您还可以在 beforeunload 方法上附加事件。

$(window).bind('beforeunload',function(){
$(".target").blur();
});

并且模糊事件不会在 Internet Explorer 中冒泡。因此,依赖于带有 blur 事件的事件委托的脚本将无法在浏览器中始终如一地工作。

请检查

http://api.jquery.com/blur/

于 2013-09-10T12:19:41.807 回答
1

onblur 属性可用于设置窗口上的模糊处理程序,当窗口失去焦点时触发。当用户更改窗口时,您可以使用类似的东西来触发模糊事件。

http://jsfiddle.net/xkDgQ/

HTML

 <p>click on another window to fire the blur event for this browser window</p>

JavaScript

 window.onblur = blurText;

 function blurText() {
     alert("blur event detected!");
     // remove the event to stop an infinite loop!
     window.onblur = '';
 }
于 2013-09-10T12:12:24.290 回答
-1

不,只有onunloadonbeforeunload在窗口关闭时触发,即使在所有浏览器中也不会触发。浏览会话的终止一般不在 js 的控制范围之内。

PS:即使它们确实触发了,我认为运行时不会有足够的时间或内存分配来生成和触发 XHR 对象......

于 2013-09-10T12:17:25.560 回答