2015-11-04 97 views
0

注意:我看到Question但問題是不一樣的。window.onbeforeunload只適用於我刷新頁面

我有一個頁面命名login_check.cfm而這個頁面做一個location.href到home.cfm

的home.cfm我有這樣的代碼

<script> 
window.onbeforeunload = function() { window.history.go(0); }; 
</script> 

<script> 
window.onbeforeunload = function() { window.history.forward(1); }; 
</script> 

我的意圖是禁止用戶使用後退按鈕,而其工作只能做一次刷新或者使用一個鏈接來做刷新。 問題是我的頁面是基於90%ajax的,當用戶點擊後退按鈕時,用戶返回登錄頁面的時間最長。

使用Document ready()沒有區別。

意見建議?

+0

洛爾 「QuestionsOverflow」:d – nicael

+0

我會建議使用'location.replace'代替'location.href'。 –

+0

我得到一個空白頁使用此 – Deivi

回答

0

,我發現這個老Question其中rohit416提供一個良好的answer,它仍然有效

(function ($, global) { 

    var _hash = "!", 
    noBackPlease = function() { 
     global.location.href += "#"; 

     setTimeout(function() { 
      global.location.href += "!"; 
     }, 50); 
    }; 

    global.setInterval(function() { 
     if (global.location.hash != _hash) { 
      global.location.hash = _hash; 
     } 
    }, 100); 

    global.onload = function() { 
     noBackPlease(); 

     // disables backspace on page except on input fields and textarea. 
     $(document.body).keydown(function (e) { 
      var elm = e.target.nodeName.toLowerCase(); 
      if (e.which == 8 && elm !== 'input' && elm !== 'textarea') { 
       e.preventDefault(); 
      } 
      // stopping event bubbling up the DOM tree.. 
      e.stopPropagation(); 
     }); 
    } 

})(jQuery, window);