微信瀏覽器左上角返回按鈕監(jiān)聽的實(shí)現(xiàn)
問題描述1:
微信開發(fā)的時候,在公眾號菜單中打開一個H5頁面(如:個人中心),在這個頁面上的一些操作,經(jīng)過多次跳轉(zhuǎn)后,點(diǎn)擊左上角的返回按鈕,發(fā)現(xiàn)會原封不動的返回至上一級頁面。
即 公眾號菜單->A->B->C,點(diǎn)擊返回后,返回了B(且無刷新),目的是要在C直接跳轉(zhuǎn)至A(公眾號菜單->A->B->C,C->A),雖然可以在C上添加按鈕之類的操作進(jìn)行跳轉(zhuǎn)(公眾號菜單->A->B->C->A),但當(dāng)點(diǎn)擊左上角返回按鈕后,依然是會返回C頁面,并且,也無法確保用戶不去點(diǎn)擊左上角的返回按鈕。
解決方式:
在C頁面中添加如下javascript代碼:
$(function(){
pushHistory();
window.addEventListener("popstate", function(e) { //回調(diào)函數(shù)中實(shí)現(xiàn)需要的功能
alert("我監(jiān)聽到了瀏覽器的返回按鈕事件啦");
location.href='你要跳轉(zhuǎn)的鏈接'; //在這里指定其返回的地址
}, false);
});
function pushHistory() {
var state = {
title: "title",
url: "__SELF__"
};
window.history.pushState(state, state.title, state.url);
}
問題描述2:
以上,解決了返回按鈕的監(jiān)聽與控制,但是又出現(xiàn)了新的問題,即當(dāng)從C->A后,點(diǎn)擊返回按鈕,依然會返回C頁面,目的是在A頁面點(diǎn)擊返回則關(guān)閉網(wǎng)頁返回至公眾號對話頁面。
解決方式:
PS:評論區(qū)中有人(@一路博客博主)指出新版微信jdk的關(guān)閉頁面api已經(jīng)改變,已在代碼中標(biāo)出
本人未親自測試,各位可以兩種方法都試試。
在A頁面中添加如下javascript代碼:
$(function(){
pushHistory();
window.addEventListener("popstate", function(e) {
// 新版中使用wx.closeWindow()方法
WeixinJSBridge.call('closeWindow');
}, false);
});
function pushHistory() {
var state = {
title: "myCenter",
url: "__SELF__"
};
window.history.pushState(state, state.title, state.url);
}
問題描述3:
在微信中進(jìn)入頁面就觸發(fā)了popstate事件。然后頁面會處于一直刷新狀態(tài)。
解決方式:
定義boolean 變量bool=false。在頁面加載后,采用setTimeout方法設(shè)置1.5s的超時,在超時執(zhí)行方法中設(shè)置bool=true。
在popstate監(jiān)聽當(dāng)中增加對bool的判斷,當(dāng)bool=true時,執(zhí)行內(nèi)容。
代碼如下:
$(function(){
pushHistory();
var bool=false;
setTimeout(function(){
bool=true;
},1500);
window.addEventListener("popstate", function(e) {
if(bool){
alert("我監(jiān)聽到了瀏覽器的返回按鈕事件啦");
}
}, false);
});
到此這篇關(guān)于微信瀏覽器左上角返回按鈕監(jiān)聽的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)微信瀏覽器返回按鈕監(jiān)聽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js實(shí)現(xiàn)當(dāng)復(fù)選框選擇匿名登錄時隱藏登錄框效果
這篇文章主要介紹了js實(shí)現(xiàn)當(dāng)復(fù)選框選擇匿名登錄時隱藏登錄框效果,實(shí)例分析了javascript動態(tài)操作頁面元素樣式的相關(guān)技巧,非常簡單實(shí)用,需要的朋友可以參考下2015-08-08
JS 數(shù)字轉(zhuǎn)換為大寫金額的簡單實(shí)例
下面小編就為大家?guī)硪黄狫S 數(shù)字轉(zhuǎn)換為大寫金額的簡單實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08
JavaScript實(shí)現(xiàn)當(dāng)網(wǎng)頁加載完成后執(zhí)行指定函數(shù)的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)當(dāng)網(wǎng)頁加載完成后執(zhí)行指定函數(shù)的方法,實(shí)例分析了javascript加載頁面及執(zhí)行函數(shù)的技巧,需要的朋友可以參考下2015-03-03
JavaScript簡單實(shí)現(xiàn)合并兩個Json對象的方法示例
這篇文章主要介紹了JavaScript簡單實(shí)現(xiàn)合并兩個Json對象的方法,結(jié)合實(shí)例形式分析了json對象的遍歷、添加實(shí)現(xiàn)合并的相關(guān)操作技巧,需要的朋友可以參考下2017-10-10

