JavaScript监听手机物理返回键的两种解决方法

JavaScript没有监听物理返回键的API,因此只能使用 popstate 事件监听。接下来经过本文给你们分享JavaScript监听手机物理返回键的两种解决方法,app

有两个解决办法:函数

一、返回到指定的页面    this

1
2
3
4
5
6
7
8
9
10
11
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" , "#" );
    }

二、js文件方法url

此声明函数在xback.js文件里有,在app.js里必须再声明一次,否则监听返回事件失败。spa

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/**
  * 使用 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' );

调用方法:code

1
2
3
XBack.listen( function (){
   alert( 'back' );
});

总结事件

以上所述是小编给你们介绍的JavaScript监听手机物理返回键的两种解决方法ip

相关文章
相关标签/搜索