在 Internet Explorer 上卸载事件之前使用的正确方法? [复制]
Posted
技术标签:
【中文标题】在 Internet Explorer 上卸载事件之前使用的正确方法? [复制]【英文标题】:Correct way to use before unload event on Internet Explorer? [duplicate] 【发布时间】:2013-07-04 06:34:26 【问题描述】:我试图在用户离开网站时在后台跟踪数据。这适用于 Firefox 和 chrome。但不适用于 Internet Explorer。在 Internet Explorer 上卸载事件之前使用的正确方法是什么?
$(window).bind('beforeunload', function ()
$.post("track.php",
async: false,
ip: ip,
plansclick: plansclick,
);
);
【问题讨论】:
您已确认在 IE 中没有触发 beforeunload 事件? 是的,我已验证。当您关闭选项卡/浏览器时,它不会发送数据。 我的意思是使用 console.log 事件或警报事件。只是为了验证该功能是否正常工作。然后,您需要添加更复杂的代码,例如示例中的帖子。 【参考方案1】:似乎是beforeunload
事件的问题。这在jQuery.unload 上进行了描述,为
卸载事件的确切处理因浏览器版本而异。例如,某些版本的 Firefox 会在点击链接时触发该事件,但不会在窗口关闭时触发。在实际使用中,应在所有支持的浏览器上测试行为,并与专有的 beforeunload 事件进行对比。
beforeunload
比unload
可靠,但一定要直接赋值(不通过jQuery绑定),像这样:
window.onbeforeunload = function() /* do stuff */ ;
卸载事件本身并不是为了完成工作,只是清理对象......随着垃圾收集器越来越好,浏览器甚至没有理由触发卸载事件。
所以您可以尝试将您的代码转换为:
window.onbeforeunload = function ()
$.post("track.php",
async: false,
ip: ip,
plansclick: plansclick,
);
;
但是,任何浏览器似乎都无法保证此功能。
Possible Fix for jQuery.onbeforeunloadDuplicate issue on ***Duplicate issue on *** 2Duplicate issue on *** 3
【讨论】:
添加了参考链接以帮助您。以上是关于在 Internet Explorer 上卸载事件之前使用的正确方法? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
onkeydown 和 onkeyup 事件在 Internet Explorer 8 上不起作用
在 Internet Explorer 中触发 window.resize 事件
如何让 Internet Explorer 模拟指针事件:无?
为啥在安装Windows Internet Explorer 7的时候,提示"此操作系统不支持Windows Internet Explorer 7.