[JavaScript] iframe 攔截瀏覽器 F5 事件

最近在玩 iframe 的時候想到如果使用者直接按 F5 重新整理網頁,不就會遺失 iframe 的瀏覽紀錄了嗎?於是我就把矛頭指向攔截瀏覽器 F5 事件的方向去解。

我這邊的做法是在父層與子層皆加上一段 JavaScript 來攔截,讓瀏覽器只重整子層的網頁。

  • 父層:
    var iframe = $('#external-frame')[0];
    
    document.onkeydown = function (e) {
        e = window.event || e;
        var keycode = e.keyCode || e.which;
        if (keycode == 116) {
            // ie
            if (window.event) {
                try { e.keyCode = 0; } catch (e) { }
                e.returnValue = false;
            }
            // ff
            else {
                e.preventDefault();
            }
    
            iframe.contentWindow.location.reload();
        }
    };
  • 子層:
    document.onkeydown = function (e) {
        e = window.event || e;
        var keycode = e.keyCode || e.which;
        if (keycode == 116) {
            // ie
            if (window.event) {
                try { e.keyCode = 0; } catch (e) { }
                e.returnValue = false;
            }
            // ff
            else {
                e.preventDefault();
            }
    
            window.location.reload();
        }
    };

     



這裡的資訊對您有用嗎?歡迎斗內給我