2016-07-06 62 views
1

當用戶點擊瀏覽器後退按鈕時,jQuery是否可以觸發某個功能? 我有一個lightbox /小部件,當它打開時填充窗口。有一個關閉按鈕等,但如果這個關閉,如果用戶錯誤地按下了後退按鈕,這將是很好的。當用戶點擊瀏覽器後退按鈕時觸發事件

我有這個迄今爲止但功能似乎並不在所有

$(window).on("navigate", function (event, data) { 
      event.preventDefault(); 
      console.log('BACK PRESSED'); 
      var direction = data.state.direction; 
      if (direction === 'back') { 
       if(widgets.full_active){ 
        $('.close', widgets.active_widget).click(); 
        event.preventDefault(); 
        console.log('CLOSE THIS'); 
       } 
      } 
      if (direction === 'forward') { 
       // do something else 
      } 
     }); 

運行通過不運行在功能event.preventDefault開始這條線();應該表示頁面永不改變

+0

改爲使用window.onbeforeunload事件。 –

+1

^但請注意,該事件也會在標籤頁/窗口關閉時觸發,或者用戶導航到另一個站點。沒有辦法知道何時卸載事件是由單擊後退按鈕引發的 –

+0

http://stackoverflow.com/questions/3522090/event-when-window-location-href-changes同樣的概念 – aximus

回答

0

通常,我使用來自瀏覽器的原生JavaScript API執行此操作,如下所述:Manipulating the Broser History

使用jQuery,我發現人們通常使用這個插件:​​3210,雖然我不知道它是什麼狀態。

您正在尋找的活動是onpopstate

一個popstate事件每次分發到窗口中的兩個歷史條目之間的積極 歷史條目修改爲同一 文件。

相關問題