簡體   English   中英

瀏覽器/選項卡使用javascript(或任何其他語言)關閉檢測

[英]Browser/tab close detection using javascript (or any other language)

我在各個地方搜索了這個問題,但他們提到的只是使用了javascript window.unloadwindow.onbeforeunload 此外,它在大多數情況下都不能用於Chrome,因為它被阻止了。
然后谷歌如何設法做到這一點。 如果我們正在撰寫郵件並錯誤地關閉標簽,谷歌會提示我們“你確定嗎?” 框。
有人可以幫幫我嗎?
實際上我想要做的是詢問用戶,當他填寫表格並錯誤地點擊標簽關閉時。 如果是的話,我允許他導航離開他留在頁面上並繼續填寫他的表格。

我測試過,MDN上發布的示例在Chrome中清晰可見。

<script>
    window.onbeforeunload = function (e) {
        e = e || window.event;

        // For IE and Firefox prior to version 4
        if (e) {
            e.returnValue = 'Any string';
        }

        // For Safari
        return 'Any string';
    };

    function formSubmit() {
      window.onbeforeunload = null; 
   }
</script>

...

   <form onsubmit="formSubmit()">...</form>

這樣一個對話框打開,彈出窗口阻止程序不會阻止它,因為它來自用戶點擊。

如果您只想詢問用戶是否要在頁面上的表單中更改任何內容時離開頁面,請查看PageHasFormChanges 請記住,我開發它是為了在非常簡單的頁面上使用它,只有一個或兩個表單。

PageHasFormChanges :一個jQuery插件,用於檢查頁面上是否有任何形式的更改,並在離開頁面之前警告用戶。

您無需執行任何操作,只需在頁面上加載腳本即可。 您可以更改默認值:

JoelPurra.PageHasFormChanges.setOptions({
    leavingPageWarningMessage: "Are you sure?"
});

如果您使用ajax提交表單,可以考慮將resetWarningOnPreventedSubmit設置為true

你可以使用jquery卸載功能:

$(window).unload(function() {
  alert('Handler for .unload() called.');
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM