javascript javascript計時器範例 javascript回上一頁事件 - 檢測後退按鈕在瀏覽器中單擊




3 Answers

所以就AJAX而言......

在使用大多數使用AJAX來瀏覽頁面特定部分的Web應用程序時向後按是一個巨大的問題。 我不接受“必須禁用按鈕意味著你做錯了什麼”,事實上,不同方面的開發人員長期遇到這個問題。 這是我的解決方案:

window.onload = function () {
    if (typeof history.pushState === "function") {
        history.pushState("jibberish", null, null);
        window.onpopstate = function () {
            history.pushState('newjibberish', null, null);
            // Handle the back (or forward) buttons here
            // Will NOT handle refresh, use onbeforeunload for this.
        };
    }
    else {
        var ignoreHashChange = true;
        window.onhashchange = function () {
            if (!ignoreHashChange) {
                ignoreHashChange = true;
                window.location.hash = Math.random();
                // Detect and redirect change here
                // Works in older FF and IE9
                // * it does mess with your hash symbol (anchor?) pound sign
                // delimiter on the end of the URL
            }
            else {
                ignoreHashChange = false;   
            }
        };
    }
}

至於我已經能夠告訴這個工作跨chrome,firefox, 尚未測試IE

javascript碼表

我必須檢測用戶是否點擊了後退按鈕。 為此,我正在使用

window.onbeforeunload = function (e) {
}

如果用戶單擊後退按鈕,它可以工作。 但是,如果用戶單擊F5或重新加載瀏覽器按鈕,也會觸發此事件。 我該如何解決?




我知道的最佳方式

         window.onbeforeunload = function (e) {
            var e = e || window.event;
            var msg = "Do you really want to leave this page?"

            // For IE and Firefox
            if (e) {
                e.returnValue = msg;
            }

            // For Safari / chrome
            return msg;
         };



我假設您正在嘗試處理Ajax導航,而不是試圖阻止您的用戶使用後退按鈕,這違反了有關UI開發的每一個原則。

這裡有一些可能的解決方案: JQuery History Salajax 一個更好的Ajax後退按鈕




Related