1. 程式人生 > >獲取微信返回事件時的感悟

獲取微信返回事件時的感悟

最新一個專案要開發微信公眾號的內容,有一個需求是獲取返回按鈕點選事件在其點選時跳轉到特定的頁面,可是微信的返回按鈕只是相當執行後退一步。然後看了一篇文章很多人都不知道的監聽微信、支付寶等移動app及瀏覽器的返回、後退、上一頁按鈕的事件方法,看到了寫法
$(function(){  
    pushHistory();  //這個必須在文件載入時就觸發,創建出來的新的history實體
    window.addEventListener("popstate", function(e) {  //popstate 只有在history實體被改變時才會觸發
        alert("我監聽到了瀏覽器的返回按鈕事件啦");//根據自己的需求實現自己的功能  
}, false);  
    function pushHistory() {  
        var state = {  
            title: "title",  
            url: "#"  
        };  
        window.history.pushState(state, "title", "#");  
    }  
      
});  




之前看到這個標題就很誤解,還以為是這個只針對於微信的返回按鈕,後來經過對popstate的研究才發現這些都是h5新API,主要是針對於瀏覽器的返回按鈕,也就是也適用於pc端的瀏覽器返回按鈕,由此可知微信的返回按鈕其實就相當於瀏覽器的返回。之前只是想測試下這個有沒有用,就只是

監聽了"popstate",然後發現怎麼都觸發不了這個監聽事件,還以為是隻針對微信,可是用微信測試也沒觸發。百思不得其解,經過多次測試,才發現必須要先建立新的history實體,否則是監聽不到的!也就是一定要先寫pushHistory()