2016-05-12 18 views
0

我想要做的是,如果我在按任何其他彈出窗口時按回按鈕,我應該關閉彈出窗口並重新加載頁面。如何檢測jQuery中瀏覽器的後退按鈕以及是否有任何對話打開關閉它?

我在下面試過。但它只是採取鍵盤後退按鈕,而不是瀏覽器後退按鈕。任何一個可以幫助我解決這個

$(document).ready(function() { 

    $(document).bind("keydown keypress", function(e){ 
      if(e.which == 8){ // 8 == backspace 
       alert("back button"); 
      } 
     }); 
} 
+0

你的問題還不清楚。解釋你的目的。你想要什麼? – Mohammad

+0

我需要檢測瀏覽器的後退按鈕以及鍵盤筆劃。當我在瀏覽器或按鍵上單擊後退按鈕時,我需要檢查天氣的任何對話框打開..如果打開,關閉它並刷新頁面 – Bhanu

回答

0

如果你想讓它停止導航到這一點:

$(document).bind("keydown", function(e) { 

    // if a object has focus 
    // inputs, textarea, etc. 
    if($(":focus").length != 0) { 
     return; 
    } 

    // else don't allow the press 
    if(e.keyCode == 8) { 
     parent.postMessage("message"); 
     window.close(); 
     e.preventDefault(); 
    } 
}); 

對於我來說,捕捉和禁用瀏覽器的後退。並且您可以在窗口之間通信postMessage

有關窗口間通信的更多信息。 https://davidwalsh.name/window-iframe

1

用於檢測瀏覽器並關閉彈出窗口的代碼片段。

var path = 'pageURL'; 
history.pushState(null, null, path + window.location.search); 
window.addEventListener('popstate', function (event) { 
    //Code to close the pop up 
    history.pushState(null, null, path + window.location.search); 
}); 
相關問題