Chrome 在标签页(或浏览器)关闭时打开卸载前事件

Chrome onbeforeunload event when tab (or browser) closes

本文关键字:卸载 事件 标签 浏览器 Chrome      更新时间:2023-09-26

当用户离开(关闭)浏览器或页面时,我正在尝试运行一个函数,并且我已经让它在除Chrome以外的所有浏览器中运行。

如果我离开页面,Chrome 会成功运行该功能,但如果我关闭标签页或完全关闭浏览器,则不会运行该功能。

我在最后运行的函数创建一个图像并将一些数据发送到我的服务器(类似于任何分析报告)示例:img.src="url?data=yyy"。此映像是使用 js 动态创建的。

有人可以阐明问题可能是什么吗?我将其缩小到几个原因:

1)当选项卡关闭时,我没有使用正确的事件(即在卸载之前没有)

2)Chrome实际上运行该功能,但由于浏览器/页面关闭,图像未发送。

任何帮助,不胜感激。谢谢。

下面是示例代码:

if(window.addEventListener){
   window.addEventListener("beforeunload", page_unload, false);         
}
function page_unload(){
    var img     = new Image();
    var img_src = "http://www.myurl.com?data=yyy"
    img.src = img_src;
}

我在Chrome上遇到了一个相关的问题,并使用jQuery解决了它:

$(window).unload( function() {
   //Call your function
   page_unload();
});

出于某种原因,jQuery unload 事件在某些 JavaScript beforeunload 无法正常工作的情况下在 Chrome 中效果更好。