同问,下面的方法全部无效 window.onbeforeunload = function (e) { var dialogText = '木确定要离开此页面吗22222?'; e.returnValue = dialogText; return dialogText; }; window.addEventListener('pagehide', async function (event) { }); window.addEventListener("pagehide", async function () { }, false); window.addEventListener("pageshow", async function () { }); window.addEventListener('unload', function (event) { }); window.addEventListener("visibilitychange", function (e) { });
ios微信打开h5链接,在关闭时无法发出埋点记录,监听了好多生命周期都不行?场景:因为有需求,在ios微信,打开h5预览页面开始记录预览开始时间,然后点击左上角 x 关闭h5时,调用埋点接口,统计用户在页面留存时间多数 问题:在安卓、浏览器内一切正常,但是ios内会存在问题,点击左上角 x 关闭h5时,调用埋点接口时,有时会发出,有时不会发出 查询了好多资料,都没有找到解决问题,所以发出帖子来,请大家一起帮忙研究研究 发帖求助,先感谢官方及各路大佬的解答 代码示例: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> document.addEventListener("visibilitychange", function logData() { if (document.visibilityState === "hidden") { navigator.sendBeacon("https://xxx/save", JSON.stringify({ "userId": "11111", "startTime": "2024-02-27 16:11:26.35", "endTime": "2024-02-27 16:11:31.587", "content": "{\"OS\":\"iphone os\",\"OSVersion\":\"17\",\"browser\":\"applewebkit\"}" })); } }); // 监听网页关闭或刷新 window.addEventListener('unload', logData, false); function logData() { navigator.sendBeacon("https://xxx/save", JSON.stringify({ "userId": "22222", "startTime": "2024-02-27 16:11:26.35", "endTime": "2024-02-27 16:11:31.587", "content": "{\"OS\":\"iphone os\",\"OSVersion\":\"17\",\"browser\":\"applewebkit\"}" })); } document.addEventListener("pagehide", function logData() { navigator.sendBeacon("https://xxx/save", JSON.stringify({ "userId": "33333", "startTime": "2024-02-27 16:11:26.35", "endTime": "2024-02-27 16:11:31.587", "content": "{\"OS\":\"iphone os\",\"OSVersion\":\"17\",\"browser\":\"applewebkit\"}" })); }); </script> </body> </html>
01-03