根據(jù)MDN文檔:
由于某些原因,基于Webkit的瀏覽器不遵循規(guī)范中的對(duì)話框。下面的示例中有一個(gè)幾乎可以跨瀏覽器工作的關(guān)閉示例。
window.addEventListener("beforeunload", function (e) { var confirmationMessage = "\o/"; (e || window.event).returnValue = confirmationMessage; //Gecko + IE return confirmationMessage; //Webkit, Safari, Chrome });
這個(gè)例子適用于處理所有瀏覽器。
如果我理解正確,您想知道何時(shí)有效關(guān)閉一個(gè)標(biāo)簽/窗口。嗯,據(jù)我所知,在JavaScript中唯一檢測到這一點(diǎn)的方法是使用onunload或onbeforeunload事件。
不幸的是(或幸運(yùn)的是?),當(dāng)您通過鏈接離開一個(gè)網(wǎng)站或使用瀏覽器的返回按鈕時(shí),這些事件也會(huì)觸發(fā)。所以這是我能給出的最好答案,我認(rèn)為您無法在JavaScript中原生地檢測到一個(gè)純粹的關(guān)閉。如果我理解錯(cuò)誤,請(qǐng)糾正我。