Html 5 onpopstateイベント携帯機器への復帰操作禁止


Html 5 onpopstateイベント携帯機器への復帰操作禁止
 example.html        
window.onpopstate = function (event) {
     // alert("location: " + document.location + ", state: " + JSON.stringify(event.state));
     // alert("page: " + getQueryString('page') + ", result: " + JSON.stringify(event.state));

      if (getQueryString('page') == "3") {
        if (JSON.stringify(event.state) == '{"page":3}') {
          //alert('ok');
          window.location.reload();
        }
      
      }
    };
    //        .  
    history.pushState({ page: 1 }, "title 1", "?page=1");    //              http://example.com/example.html?page=1,     1  
    history.pushState({ page: 2 }, "title 2", "?page=2");    //              http://example.com/example.html?page=2,     2  
    history.replaceState({ page: 3 }, "title 3", "?page=3"); //              http://ex..?page=2    http://ex..?page=3,     2  
    history.back(); //    "location: http://example.com/example.html?page=1, state: {"page":1}"  
    history.back(); //    "location: http://example.com/example.html, state: null  
    history.go(2);  //    "location: http://example.com/example.html?page=3, state: {"page":3} 



function getQueryString(name) {
      //         ,                ,     
      if (location.href.indexOf("?") == -1 || location.href.indexOf(name + '=') == -1) {
        return '';
      }
      //          
      var queryString = location.href.substring(location.href.indexOf("?") + 1);

      //       ?key=value&key2=value2
      var parameters = queryString.split("&");

      var pos, paraName, paraValue;
      for (var i = 0; i < parameters.length; i++) {
        //       
        pos = parameters[i].indexOf('=');
        if (pos == -1) { continue; }

        //   name   value
        paraName = parameters[i].substring(0, pos);
        paraValue = parameters[i].substring(pos + 1);

        //      name    name,      ,  ,     +      
        if (paraName == name && paraValue) {
          return decodeURI(paraValue.replace(/\+/g, " "));
        }
      }
      return '';
    }
以上のコードが利用可能であることをテストし、リスニング、操作履歴によりリターン操作であるか否かを判断し、
携帯機器の返却ボタンを操作していると監視されている場合は、業務に応じて他の動作を行うことができます