問:捕獲瀏覽器視窗/選項卡關閉事件
我想要擷取瀏覽器視窗/分頁關閉事件,但jQuery“beforeunload”事件也會在表單上觸發意見書。如何將事件限制為視窗關閉?
A:隔離視窗關閉事件
雖然「beforeunload」偵測任何頁面離開,但我們可以排除表單提交和超連結使用以下程式碼:
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; });
注意:
如果另一個事件處理程序取消提交或導航,此解決方案可防止出現確認提示。為了解決這個問題,記錄提交/點擊事件的時間,並檢查「beforeunload」是否在幾秒後發生。以上是如何在不觸發表單提交的情況下可靠地檢測瀏覽器視窗/選項卡關閉?的詳細內容。更多資訊請關注PHP中文網其他相關文章!