9

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

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

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

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

1)标签关闭时我没有使用正确的事件(即不是 beforeunload)

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;
}
4

1 回答 1

0

我有一个与 Chrome 相关的问题,并使用 jQuery 解决了它:

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

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

于 2014-01-25T07:01:26.533 回答