簡體   English   中英

iOS pagehide未觸發。 無法檢測到頁面卸載

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM