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