不攔截表單提交捕獲瀏覽器視窗關閉事件 為了專門捕獲瀏覽器視窗關閉事件,避免與表單提交衝突,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; })登入後複製