1. 程式人生 > >JavaScript監聽手機物理返回鍵

JavaScript監聽手機物理返回鍵

JavaScript沒有監聽物理返回鍵的API,所以只能使用 popstate 事件監聽。

有兩個解決辦法:

  • 1、返回到指定的頁面
        pushHistory(); 

        window.addEventListener("popstate", function(e) { 
            window.location = 'http://www.baidu.com';
        }, false); 

        function pushHistory() { 
            var state = { 
                title: "title"
, url: "#" }; window.history.pushState(state, "title", "#"); }
  • 2、js檔案方法

    此宣告函式在xback.js檔案裡有,在app.js裡必須再宣告一次,不然監聽返回事件失敗。

/**
 * 使用 HTML5 的 History 新 API pushState 來曲線監聽 Android 裝置的返回按鈕
 * XBack.listen(function(){
        alert('oh! you press the back button');
    });
 */
;!function(pkg, undefined){ var STATE = 'x-back'; var element; var onPopState = function(event){ event.state === STATE && fire(); } var record = function(state){ history.pushState(state, null, location.href); } var fire = function(){ var
event = document.createEvent('Events'); event.initEvent(STATE, false, false); element.dispatchEvent(event); } var listen = function(listener){ element.addEventListener(STATE, listener, false); } ;!function(){ element = document.createElement('span'); window.addEventListener('popstate', onPopState); this.listen = listen; record(STATE); }.call(window[pkg] = window[pkg] || {}); }('XBack');
呼叫方法:
XBack.listen(function(){
    alert('back');
});