我正在尝试在用户离开(关闭)浏览器或页面时运行函数,我已经让它在所有浏览器中正常工作,除了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;
}
onbeforeunload
事件只能用于弹出一个对话框,以鼓励用户留在你的页面上(通过返回提示文本),当事件触发时,你已经没有时间来发起HTTP请求。 - user149341