搜尋

首頁  >  問答  >  主體

是否可以在卸載前彈出視窗中顯示自訂訊息?

<p>使用<code>window.onbeforeunload</code>(或<code>$(window).on("beforeunload")</code>)時,是否可以在該彈出視窗中顯示自定義訊息? < /p> <p>也許是適用於主要瀏覽器的小技巧? </p> <p>透過查看現有的答案,我覺得過去使用諸如<code>confirm</code> 或<code>alert</code> 或<code>event.returnValue</code> 之類的東西是可能的,但現在看來他們不再工作了。 </p> <p>那麼,如何在 beforeunload 彈出視窗中顯示自訂訊息?這甚至/仍然可能嗎? </p>
P粉478445671P粉478445671459 天前515

全部回覆(2)我來回復

  • P粉186904731

    P粉1869047312023-08-25 00:34:09

    不再是了。所有主要瀏覽器都開始忽略實際訊息並只顯示自己的訊息。

    正確。 很久以前,您可以使用confirmalert,最近您可以從onbeforeunload返回一個字串處理程序並且該字串將被顯示。現在,字串的內容將被忽略,並將其視為標誌。

    當使用 jQuery 的 on 時,您確實必須在原始事件上使用 returnValue

    $(window).on("beforeunload", function(e) {
        // Your message won't get displayed by modern browsers; the browser's built-in
        // one will be instead. But for older browsers, best to include an actual
        // message instead of just "x" or similar.
        return e.originalEvent.returnValue = "Your message here";
    });

    或老式的方式:

    window.onbeforeunload = function() {
        return "Your message here"; // Probably won't be shown, see note above
    };

    這就是你所能做的。

    回覆
    0
  • P粉143640496

    P粉1436404962023-08-25 00:32:48

    tl;dr - 在大多數現代瀏覽器中您無法再設定自訂訊息

    為了在使用者關閉視窗之前設定確認訊息,您可以使用

    jQuery

    #
    $(window).bind("beforeunload",function(event) {
        return "You have some unsaved changes";
    });

    Javascript

    window.onbeforeunload = function() {
        return "Leaving this page will reset the wizard";
    };

          重要的是要注意,您不能 確認/警報 內部 beforeunload< /代码>


    ##beforeunload

    以下是使用我有權限存取的瀏覽器的結果:

    Chrome:

    #

    火狐瀏覽器:

    #

    Safari:

    #
    1. IE:
    2. 有關瀏覽器支援和刪除自訂訊息的更多資訊:
    3. Chrome
    4. 在版本 51 中刪除了
    5. 對自訂訊息的支援
    6. Opera 在版本 38 中刪除了對自訂訊息的支援
    Firefox 在 44.0 版本中刪除了對自訂訊息的支援(仍在尋找此資訊的來源)### ###Safari ###在版本 9.1 中刪除了###對自訂訊息的支援### ###

    回覆
    0
  • 取消回覆