亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在javascript中檢測瀏覽器選項卡關閉事件

如何在javascript中檢測瀏覽器選項卡關閉事件

楊魅力 2022-12-22 10:08:26
在 chrome 瀏覽器中單擊關閉選項卡圖標時嘗試調用瀏覽器選項卡關閉事件但不起作用。我想在關閉瀏覽器選項卡之前顯示警告消息。怎么做?下面的代碼不起作用:<!DOCTYPE html><html><head>    <title>Page Title</title>    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script></head><script type="text/javascript">    window.onbeforeunload = function(evt) {        var message = "Are you sure?";         /* InternetExplorer/Firefox*/        var e = evt || window.event        e.returnValue = message         /* WebKit browser */        return message;    }</script><body>     <h1>This is a Heading</h1>    <p>This is a paragraph.</p> </body> </html>
查看完整描述

3 回答

?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

在某些瀏覽器中,在此事件期間可能會忽略對 window.alert()、window.confirm() 和 window.prompt() 的調用。有關詳細信息,請參閱 HTML 規范。

https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event

嘗試 console.log 并在控制臺中選中“保留日志”。你會發現這alert()對你的情況不起作用


查看完整回答
反對 回復 2022-12-22
?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

為防止詐騙,瀏覽器會謹慎處理這些消息。大多數人可以做的事情非常有限。Chrome 顯示標準化消息“離開網站?您所做的更改可能無法保存?!?nbsp;這是不可改變的afaik。為此,只需使用:

  window.onbeforeunload = function () {  
        return true;
    };

另一種方法是檢測鼠標何時離開窗口。這是不一樣的,但離開視口通常是在關閉選項卡之前執行的操作。您可以在鼠標離開窗口時檢測事件并觸發您喜歡的任何消息或彈出窗口。我個人覺得這很煩人。


查看完整回答
反對 回復 2022-12-22
?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

您實際上正在正確檢測到選項卡關閉事件!問題出在您的觸發操作上。來自相關的 MDN 文檔

為了防止不需要的彈出窗口,某些瀏覽器不會顯示在beforeunload事件處理程序中創建的提示,除非頁面已與之交互。此外,有些根本不顯示它們。

這意味著您很難在關閉瀏覽器選項卡之前顯示警告消息,就像您說的那樣。但是,您可以通過使用return處理程序上的值來實現類似的目的。再次引用文檔:

當此事件返回(或將 returnValue 屬性設置為)null 或 undefined 以外的值時,系統將提示用戶確認頁面卸載。在舊版瀏覽器中,事件的返回值顯示在此對話框中。從 Firefox 44、Chrome 51、Opera 38 和 Safari 9.1 開始,將顯示不受網頁控制的通用字符串,而不是返回的字符串。

有關更多詳細信息,請參閱其他問題Warn user before leaving web page with unsaved changes


查看完整回答
反對 回復 2022-12-22
  • 3 回答
  • 0 關注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號