微信內置瀏覽器返回鍵popstate事件監聽不觸發問題(安卓)

    最近接到一個需求,在頁面返回的時候須要跳轉到指定的連接地址。這也沒什麼特別。可是作好測試的時候,發如今android設備有個物理/虛擬放回按鍵,這個返回直接就退出了瀏覽網頁。點擊頁面中的返回是沒問題的。通過各類折騰就是沒法實現效果。android

問題以下:

    頁面實現onpopstate監聽返回事件,anroid設備返回按鍵點擊不觸發onpopstate事件。   瀏覽器

    部分代碼以下:安全

 var balink="http://www.baidu.com";

    function pushHistory() {

        var state = {

            title: "上一頁",

            url: balink

        };

        window.history.pushState(state, "title", "#")

    }

    $(function() {

        pushHistory();

        window.addEventListener("popstate", function(e) {

            if (balink != "") {

                window.location = balink

            }

        }, false)

    });

    測試在火狐瀏覽器是能夠觸發popstate事件的微信

嘗試解決過程:

    1.嘗試在網上找解決辦法,發現仍是有人也遇到了這些問題的,可是都沒有解決辦法

          

   

          

     

   測試發現,頁面打開後,若是用戶點擊了頁面有交互後,onpopstate事件監聽就能正常觸發,很奇怪。若是頁面打開無任何操做,直接按android返回按鈕。事件回調就沒觸發。直接退出了也退出了瀏覽器。測試

    可是客戶須要的效果就是不用用戶點擊頁面,也能監聽返回並跳轉到指定連接。url

    有人說是什麼瀏覽器的問題,有什麼安全策略問題。應該都不是主要緣由。spa

    2.而後想着自動觸發頁面body是否可能能夠

         失敗了,無效,不會觸發onpopstate事件 code

 

最後查了下微信瀏覽器內核的相關資料。引入了一些東西,雖然是完美解決了返回的問題。但仍是沒徹底弄明白緣由。blog

還在研究中,待續。。。。。。。。

相關文章
相關標籤/搜索