2016-12-08 123 views
2

我想要在用戶離開頁面時向用戶提出確認。在頁面重新加載時停止顯示確認框 - Javascript

我知道它可以很容易透過JavaScipt的window.onbeforeunload

來實現,但是唯一的問題是,它顯示了一個彈出(如圖),當我重新加載頁面。我不想在頁面重新加載時顯示彈出窗口。我認爲彈出窗口顯示在網頁瀏覽器中,因爲它顯示一條消息「您是否要重新加載此網站?」我沒有寫過任何地方。

這裏是我的簡單的代碼:

<html> 
    <head> 
     <title>Script</title> 
     <script> 
      window.onbeforeunload = function() { 
       return 'Are you sure you want to leave?'; 
      }; 
     </script> 
    </head> 
    <body> 
     hello 
     <a href="http://google.com">Google</a> 
    </body> 
</html> 

enter image description here

任何幫助,將不勝感激。

編輯:

很多人說,這是不好的問用戶,而他是在離開現場,我也完全同意這一點。但這是客戶的要求,所以這不取決於我。對不起。

感謝,

PARTH沃拉

+1

我想刷新方式離開現場,回來的網站。所以離開網站意味着它會提醒 – Mahi

+1

'我不想在頁面重新載入時顯示彈出窗口。那麼你想要什麼。 – Manish

+0

刷新後,只需像往常一樣重新加載頁面,無需詢問用戶。 –

回答

-2

即彈出是瀏覽器的默認彈出。我不認爲它可以被刪除。但是,您可以嘗試使用JavaScript觸發Enter鍵。默認情況下,選擇Reload,所以按回車鍵將點擊Reload並重新加載頁面。

我還沒有嘗試過自己,但可能只是工作。

-1

這應該工作。

Chrome中的自定義信息將不會被顯示爲解釋here

定製消息也沒有Firefox的工作:

<html> 
    <head> 
     <title>Script</title> 
     <script> 
      var navigating = false; 
      window.onbeforeunload = function (e) { 

       if(!navigating){ 
        return null; 
       } 
       navigating = false; 
       var e = e || window.event; 

        // For IE and Firefox 
        if (e) { 
        e.returnValue = 'àààà Are you sure you want to leave?'; 
        } 

        // For Safari    
       return ' àààà Are you sure you want to leave?'; 
      }; 
      function navigate(url){ 
       navigating = true; 
       setTimeout(function(){ window.location = url; }, 0); 
      } 
      window.onload = function(){ 
       var as = document.getElementsByTagName("a"); 
       var navigateToUrl = function(e){ 
        var element = e.target; 
        var url = element.getAttribute("data-href"); 
        navigate(url); 
       }; 
       for(var i = 0; i < as.length; i++){ 
        as[i].onclick= navigateToUrl; 
       } 
      } 
     </script> 
    </head> 
    <body> 
     hello 
     <a href="#" data-href="http://google.com">Google</a> 
    </body> 
</html> 
+0

好吧,@Liam我編輯了我的答案。我確實回答了這個問題。 – sabotero

+0

所以你想讓OP爲他的網頁上的每個鏈接添加一個JavaScript函數?這不可行嗎? – Liam

+0

@sabotero。非常感謝。有效。我一定會對此讚不絕口,但抱歉,我無法接受答案,因爲在我的情況下,無法爲每個鏈接添加JavaScript函數。 –