使用javascript的onbeforeunload事件

來源:互聯網
上載者:User

 

onbeforeunload事件會在onunload事件之前觸發,它在使用者離開頁面之前彈出一個確認框,問使用者是否要真正的離開本頁面。如果使用者點擊了“確認”按鈕,頁面將會跳轉或重新整理。如果點擊了“取消”,使用者會停留在當前頁面,onunload事件不會被觸發。假設頁面中有一個表單,使用者填寫了資料但卻沒有儲存提交,他直接點擊了重新整理按鈕,這時候就可以使用onbeforeunload事件來提示使用者“資料沒有儲存”,這樣就給哪些忘記提交或不小心點擊到頁面其他連結的使用者一個取消的機會。

如果只想彈出確認框詢問使用者是否要離開,則只需在onbeforeunload的回呼函數返回Null 字元串即可。代碼如下:

window.onbeforeunload = function(){ return ''; }//有些資料中唯寫的return; 但在我的瀏覽器上根本沒有彈出。

但如果沒有有價值的提示的資訊,像上面的代碼那樣,最好還是不要彈出確認框,以免給使用者帶來反感。大多數使用onbeforeunload事件的情況,都會提供給使用者有價值的提示。

 

下面是一個關於視窗關閉的提示代碼:

      window.onbeforeunload = function () {
            var n = window.event.screenX - window.screenLeft;
            var b = n > document.documentElement.scrollWidth - 20;
            if (b && window.event.clientY < 0 || window.event.altKey) {
                if (!confirm("真要關閉視窗嗎?")) {
                    return true;
                }
                else
                    return false;

            }
        }

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.