簡體   English   中英

在瀏覽器窗口/標簽頁關閉中打開自定義對話框

[英]Open a custom dialog on browser window/tab close

我試圖在瀏覽器窗口/標簽頁關閉時添加“確定/取消”的調查確認框。 我需要在“確定”按鈕單擊時將用戶重定向到調查鏈接。

嘗試使用以下代碼實現相同的功能。

var leave_message = 'Wait! Would you like to respond to a quick Survey?'

function bye(e) {
    if (!e) e = window.event;   
    e.cancelBubble = true;

    if (e.stopPropagation) {
        e.stopPropagation();
        e.preventDefault();
    }
    e.returnValue = leave_message;

    if (confirm(leave_message)) {
        window.open("www.surveylink.com");
    }
}

window.onbeforeunload = bye;

請建議上面的代碼不起作用。

使用此選項可以強制您的用戶訪問您的站點,這是您可以做的。

$(window).bind('beforeunload', function() {
                      window.open("http://www.surveylink.com");
      return 'Do you really want to leave?' ;
});

onbeforeunload不是常規事件。 如果在onbeforeunload事件處理程序中返回字符串,則會投射一個對話框,要求您停留在頁面上。 如果用戶單擊該對話框中的“停留在頁面上”按鈕,則該頁面的卸載將中止。 (有關更多詳細信息,例如https://developer.mozilla.org/en-US/docs/Web/API/Window.onbeforeunload

解決該問題的方法是設置一個變量,該變量指示頁面開始卸載,然后定期檢查該變量以確定卸載是否中止:

(function () {
    var triedToUnload = false;
    window.onbeforeunload = function (e) {
        triedToUnload = true;
        return "Wait! Would you like to respond to a quick Survey?";
    };
    window.setInterval(function () {
        if (triedToUnload) {
            window.open("www.surveylink.com");
        }
    }, 500);
}());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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