您好,登錄后才能下訂單哦!
這篇文章主要介紹微信瀏覽器左上角返回按鈕監聽的實現方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
問題描述1:
微信開發的時候,在公眾號菜單中打開一個H5頁面(如:個人中心),在這個頁面上的一些操作,經過多次跳轉后,點擊左上角的返回按鈕,發現會原封不動的返回至上一級頁面。
即 公眾號菜單->A->B->C,點擊返回后,返回了B(且無刷新),目的是要在C直接跳轉至A(公眾號菜單->A->B->C,C->A),雖然可以在C上添加按鈕之類的操作進行跳轉(公眾號菜單->A->B->C->A),但當點擊左上角返回按鈕后,依然是會返回C頁面,并且,也無法確保用戶不去點擊左上角的返回按鈕。
解決方式:
在C頁面中添加如下javascript代碼:
$(function(){ pushHistory(); window.addEventListener("popstate", function(e) { //回調函數中實現需要的功能 alert("我監聽到了瀏覽器的返回按鈕事件啦"); location.href='你要跳轉的鏈接'; //在這里指定其返回的地址 }, false); }); function pushHistory() { var state = { title: "title", url: "__SELF__" }; window.history.pushState(state, state.title, state.url); }
問題描述2:
以上,解決了返回按鈕的監聽與控制,但是又出現了新的問題,即當從C->A后,點擊返回按鈕,依然會返回C頁面,目的是在A頁面點擊返回則關閉網頁返回至公眾號對話頁面。
解決方式:
PS:評論區中有人(@一路博客博主)指出新版微信jdk的關閉頁面api已經改變,已在代碼中標出
本人未親自測試,各位可以兩種方法都試試。
在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:
在微信中進入頁面就觸發了popstate事件。然后頁面會處于一直刷新狀態。
解決方式:
定義boolean 變量bool=false。在頁面加載后,采用setTimeout方法設置1.5s的超時,在超時執行方法中設置bool=true。
在popstate監聽當中增加對bool的判斷,當bool=true時,執行內容。
代碼如下:
$(function(){ pushHistory(); var bool=false; setTimeout(function(){ bool=true; },1500); window.addEventListener("popstate", function(e) { if(bool){ alert("我監聽到了瀏覽器的返回按鈕事件啦"); } }, false); });
以上是“微信瀏覽器左上角返回按鈕監聽的實現方法”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。