首頁 > web前端 > js教程 > 如何在不攔截表單提交的情況下偵測瀏覽器視窗關閉?

如何在不攔截表單提交的情況下偵測瀏覽器視窗關閉?

Barbara Streisand
發布: 2024-12-13 22:40:14
原創
321 人瀏覽過

How Can I Detect Browser Window Closure Without Intercepting Form Submissions?

不攔截表單提交捕獲瀏覽器視窗關閉事件

為了專門捕獲瀏覽器視窗關閉事件,避免與表單提交衝突,jQuery的beforeunload稍作修改就可以利用該事件。

beforeunload 事件就其本身而言,觸發導致頁面被放棄的任何操作。為了將其僅限於視窗關閉事件,我們採用以下方法:

  • 我們定義一個標誌inFormOrLink,當點擊 連結或
  • 連結或
時,該標誌會設定為true。已提交。這表示使用者有意透過表單或連結離開頁面。
  • 在 beforeunload 事件處理程序中,我們檢查 inFormOrLink 的值。
    • 如果為 true ,則該事件是由表單提交或連結點擊觸發的。在本例中,我們向使用者傳回一條確認訊息。
    • 如果為 false,則該事件是由視窗關閉操作觸發的,我們可以安全地讓瀏覽器不受干擾地關閉視窗。
  • jQuery 1.7 及更高版本的更新代碼:
    var inFormOrLink;
    $('a').on('click', function() { inFormOrLink = true; });
    $('form').on('submit', function() { inFormOrLink = true; });
    
    $(window).on("beforeunload", function() { 
        return inFormOrLink ? "Do you really want to close?" : null; 
    })
    登入後複製

    對於舊版本的 jQuery(1.7 之前):
    var inFormOrLink;
    $('a').live('click', function() { inFormOrLink = true; });
    $('form').bind('submit', function() { inFormOrLink = true; });
    
    $(window).bind("beforeunload", function() { 
        return inFormOrLink ? "Do you really want to close?" : null; 
    })
    登入後複製

    以上是如何在不攔截表單提交的情況下偵測瀏覽器視窗關閉?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    來源:php.cn
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    作者最新文章
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板