[英]IOS 10.3.3 Iphone Safari beforeunload, unload, pagehide wont work
[英]IOS pagehide not triggered. Cannot detecting page unload
我在頁面加載時調用此函數:
function setBeacon() {
if (!navigator.sendBeacon) {
alert("No navigator beacon available. This is a critical bug which must be fixed.");
}
else
{
if ('beforeunload' in window) {
$(window).on('beforeunload', function() {
generateFormSendBeacon();
return undefined;
});
} else if ('onpagehide' in window) {
alert("on page hide");
window.addEventListener("pagehide", function() {
generateFormSendBeacon();
return undefined;
});
} else {
alert("Neither beforeunload or onpagehide events are available. Please report this to John, with details about your browser.");
}
}
這在桌面上完美運行。 我在generateFormSendBeacon()函數中使用了navigator.sendBeacon。 它可以正確發送它(我的服務器在接收此斷點)。 但是在移動設備上,無論是野生動物園還是Chrome瀏覽器,都不存在'beforeunload'事件。 但是根據蘋果的說法,我們應該改用pagehide。 顯示“頁面隱藏”警報; iOS確實有權訪問此事件。 但是,該事件從未觸發,因為我從未到達服務器中的斷點。 再次; 在桌面上測試相同的代碼路徑,效果很好。 如何檢測iOS上的頁面卸載?
某些瀏覽器在卸載頁面時會忽略對話框提示 。 這是預期的。
您可能正在遇到WebKit問題#193508 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.