JS監(jiān)聽瀏覽器關閉、刷新及切換標簽頁觸發(fā)事件代碼示例
更新時間:2023年11月08日 11:33:48 作者:會說法語的豬
瀏覽器是客戶端,客戶端的操作服務器是監(jiān)聽不到的,所以可以用js來監(jiān)聽,js代碼監(jiān)聽瀏覽器關閉或者刷新,這篇文章主要給大家介紹了關于JS監(jiān)聽瀏覽器關閉、刷新及切換標簽頁觸發(fā)事件的相關資料,需要的朋友可以參考下
蠻簡單的東西,知道就會,不知道就不會,沒什么邏輯可言。簡單記錄一下,只為加深點兒印象。
visibilitychange
visibilitychange可以監(jiān)聽到瀏覽器的切換標簽頁。
直接上代碼:
<script>
document.addEventListener('visibilitychange', documentVisibilityChange)
function documentVisibilityChange() {
if(document.visibilityState === "hidden") {
console.log('當前頁簽隱藏,即打開新頁簽')
}
if(document.visibilityState === "visible") {
console.log('當前頁簽顯示,即打開當前頁簽')
}
}
</script>beforeunload
beforeunload可以監(jiān)聽到頁面的關閉,頁簽切換不會觸發(fā)
- 關閉瀏覽器窗口的時候觸發(fā)
- 通過點擊當前地址欄或收藏夾進入另一個頁面時觸發(fā)(注意不是打開新頁簽)
- 刷新瀏覽器時觸發(fā)
- 重新賦值window.location.href的值的時候觸發(fā)
- 通過 form input type="submit"按鈕提交一個具有指定action的表單的時候觸發(fā)(原生事件)
可能還有其他情況,大家感興趣可以再去了解一下,我只是在瀏覽器刷新時用到了
<script>
window.addEventListener('beforeunload', windowBeforeUnload)
function windowBeforeUnload() {
console.log('觸發(fā)beforeunload --->>>')
}
</script>附:頁面鏈接跳轉不記錄歷史
function fnUrlReplace(href) {
if (href && /^#|javasc/.test(href) === false) {
if (history.replaceState) {
history.replaceState(null, document.title, href.split('#')[0] + '#');
location.replace('');
} else {
location.replace(href);
}
}
};
fnUrlReplace(targetURL);
fnUrlReplace后面直接寫一個鏈接,這樣既可以跳轉又不會記錄歷史,而且還做了兼容性處理,兼容到IE6。
總結
到此這篇關于JS監(jiān)聽瀏覽器關閉、刷新及切換標簽頁觸發(fā)事件的文章就介紹到這了,更多相關JS監(jiān)聽瀏覽器關閉刷新內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決BootStrap Fileinput手機圖片上傳顯示旋轉問題
這篇文章主要介紹了 BootStrap Fileinput手機圖片上傳顯示旋轉問題,需要的朋友可以參考下2017-06-06

