JS監(jiān)聽微信、支付寶等移動app及瀏覽器的返回、后退、上一頁按鈕的事件方法
在實際的應(yīng)用中,我們常常需要實現(xiàn)在移動app和瀏覽器中點擊返回、后退、上一頁等按鈕實現(xiàn)自己的關(guān)閉頁面、調(diào)整到指定頁面或執(zhí)行一些其它操作的需求,那在代碼中怎樣監(jiān)聽當點擊微信、支付寶、百度糯米、百度錢包等app的返回按鈕或者瀏覽器的上一頁或后退按鈕的事件呢。
我相信很多朋友像我一樣,在百度、搜狗里面搜索很久都沒找到方法。
下面就來告訴大家怎樣監(jiān)聽的方法:
首先我們要了解瀏覽器的history。
大家知道在頁面中我們可以使用javascript window history,后退到前面頁面,但是由于安全原因javascript不允許修改history里已有的url鏈接,但可以使用pushState方法往history里增加url鏈接,并且提供popstate事件監(jiān)測從history棧里彈出url。既然有提供popstate事件監(jiān)測,那么我們就可以進行監(jiān)聽。
返回、后退、上一頁按鈕點擊監(jiān)聽實現(xiàn)代碼:
window.addEventListener("popstate", function(e) { alert("我監(jiān)聽到了瀏覽器的返回按鈕事件啦");//根據(jù)自己的需求實現(xiàn)自己的功能 }, false);
雖然我們監(jiān)聽到了后退事件,但是頁面還是會返回上一個頁面,所以我們需要使用pushState增加一個本頁的url,代表本頁,大家都非常清楚是#
function pushHistory() { var state = { title: "title", url: "#" }; window.history.pushState(state, "title", "#"); }
當進入該頁面,我們就給這個history壓入一個本地的連接。當點擊返回、后退及上一頁的操作時,就進行監(jiān)聽,在監(jiān)聽代碼中實現(xiàn)自己操作。
下面是完整的代碼:
$(function(){ pushHistory(); window.addEventListener("popstate", function(e) { alert("我監(jiān)聽到了瀏覽器的返回按鈕事件啦");//根據(jù)自己的需求實現(xiàn)自己的功能 }, false); function pushHistory() { var state = { title: "title", url: "#" }; window.history.pushState(state, "title", "#"); } });
以上內(nèi)容只是小編給大家列出的核心代碼,大家根據(jù)需求適當?shù)奶砑樱薷?,刪除代碼。如果大家在參考本段代碼的過程中發(fā)現(xiàn)有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!
相關(guān)文章
javascript實現(xiàn)帶下拉子菜單的導(dǎo)航菜單效果
這篇文章主要介紹了javascript實現(xiàn)帶下拉子菜單的導(dǎo)航菜單效果的方法,涉及javascript操作頁面元素與樣式的相關(guān)技巧,需要的朋友可以參考下2015-05-05從歷史講起JavaScript基因里的函數(shù)式編程實例
這篇文章主要為大家介紹了從歷史講起JavaScript基因里的函數(shù)式編程實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10快速實現(xiàn)JS圖片懶加載(可視區(qū)域加載)示例代碼
目前很多網(wǎng)站,在圖片加載時均采用了一種名為懶加載的方式,具體表現(xiàn)為,當頁面被請求時,只加載可視區(qū)域的圖片,其它部分的圖片則不加載,只有這些圖片出現(xiàn)在可視區(qū)域時才會動態(tài)加載這些圖片,下面本文就介紹了JS圖片懶加載(可視區(qū)域加載)的實現(xiàn)方法,一起來看看吧。2017-01-01基于insertBefore制作簡單的循環(huán)插空效果
這是一個基于insertBefore制作簡單的循環(huán)插空效果,實現(xiàn)的數(shù)字下面循環(huán)插空效果,給需要的朋友分享。2015-09-09JavaScript 判斷數(shù)據(jù)類型的4種方法
這篇文章主要介紹了JavaScript 判斷數(shù)據(jù)類型的4種方法,幫助大家更好的理解和學習JavaScript,感興趣的朋友可以了解下2020-09-09在JavaScript中使用Promise.allSettled()的方法
Promise.allSettled()是一個游戲規(guī)則改變者,讓您等待所有承諾得到解決(解決或拒絕),然后根據(jù)結(jié)果采取行動,這篇文章主要介紹了如何在JavaScript中使用Promise.allSettled(),需要的朋友可以參考下2023-07-07JS 新增Cookie 取cookie值 刪除cookie 舉例詳解
cookie很實用的一個功能,可以判斷某個狀態(tài),下面與大家分享下JS 如何新增Cookie 取cookie值 刪除cookie,感興趣的朋友可以參考下2014-10-10