2014-05-02 83 views
0

在這個問題上有很多職位,有些導致解決方案,但他們中沒有一個似乎爲我工作。檢測瀏覽器歷史回

我想知道用戶何時按下瀏覽器上的後退按鈕,以便我可以採取適當的操作。但是當我按下按鈕時沒有任何反應。我現在已經嘗試了幾天,希望有人能夠發光。 這是我的js代碼

function browserButtonEvent() { 
    if(window.event) { 
     if(window.event.clientX < 40 && window.event.clientY < 0) { //ie 

     } 
     else 
     { 
      alert("navigation button clicked"); 
     } 
    } 
    else { 

     if(event.currentTarget.performance.navigation.type == 1) { 
      alert("Refreshed");   
     } 
     if(event.currentTarget.performance.navigation.type == 2) { 
      alert("Back button pressed"); 
     } 
    } 
} 

這裏是我測試的html頁面。 (我有,我用2個網頁,但應該是不夠的我認爲)


<body onbeforeunload="browserButtonEvent()"> 
    <h3>Index</h3> 
    <div style="margin-left: auto; margin-right: auto; width: 600px; height: 600px; background-color: lightblue; margin-top: 200px;"> 
     <form action=""> 
      <input type="button" value="Press" onclick="goHistory()"/> 
      <br /> 
      <!--<input type="button" value="Test" id="test" />--> 
      <br /> 
      <a href="page2.html">Page 2 </a> 
      <br /> 
      <a href="page3.html">Page 3 </a> 
      <p>Page 1</p> 

      <div style="margin-left: auto; margin-right: auto; width: 150px;"> 
       <a id="back" style="float: left;">Back</a> 
       <a id="forward" style="float: right;">Forward</a> 
      </div> 

     </form> 
    </div> 
</body> 

+1

你是問錯了問題。你想問「檢測瀏覽器歷史記錄」。這也可以通過你知道的鍵盤和鼠標快捷鍵來觸發。 – vsync

+0

是否有可能輸入'browserButtonEvent'但是沒有任何警報被調用? – Simon

+0

不,我不輸入if子句。它只是檢查是否條件,但從不進入身體。就好像條件總是錯誤的,即使後退按鈕被按下 – user1960836

回答

0

你可以嘗試使用onbeforeonunload

window.onbeforeunload = function() { 
    browserButtonEvent(); 
}; 

雖然有一個問題。後退按鈕和resfresh按鈕都會調用這個函數。當我遇到同樣的問題時,這就像我去的那樣。

+0

你可能是指'onbeforeunload' ... https://developer.mozilla.org/en-US/docs/Web/API/Window.onbeforeunload – vsync

+0

準確:)。謝謝 – Dumisani

+0

不,我不是指onbeforeunload,因爲當我通過點擊F5刷新頁面時,這個方法也會被調用。我只想知道它是後退按鈕還是已按下的前進按鈕 – user1960836