javascript
  • jquery
  • page-refresh
  • 2016-01-13 88 views 1 likes 
    1

    我有一個jsp頁面,我想阻止它重新加載,如果用戶點擊刷新,然後必須顯示對話框並要求確認/留在這裏。如果用戶點擊確認表單必須提交,否則該頁面不應刷新。如何限制重新加載選項(瀏覽器)上的頁面加載?

    <script type="text/javascript"> 
         window.onbeforeunload = function(evt) { 
          var message = 'Are you sure you want to leave?'; 
          if (evt) { 
           document.forms["myForm"].submit(); 
          } 
          else { 
    
          } 
          return message; 
         } 
    </script> 
    <form action="SubmitExam.jsp" method="post" id="myForm"> My Code</form> 
    
    +0

    你的意思是,如果用戶重新加載頁面(按F5或Ctrl + R)的形式將提交和頁面仍然停留? – Lewis

    +0

    我已經阻止(F5或Ctrl + R),但我無法禁用瀏覽器刷新按鈕,所以無論何時用戶單擊重新加載,然後它只顯示一個確認消息,並且它必須包含是/否..如果用戶按是然後窗體/頁面必須由{document.forms [「myForm」]。submit()提交; }和點擊否,它保持在同一頁面上。 –

    +0

    你的大多數請求都是有意義的,除非「如果用戶按是,那麼必須提交表單/頁面」。您*可以*添加一條消息到瀏覽器擁有的對話框,顯示某人何時試圖離開一個頁面,但最終如果他們選擇該對話框中的選項離開,它會立即發生,沒有任何代碼在運行,而您無法阻止它。如果在這個頁面上發生了一些你不想丟失的重要事情,你應該每隔一段時間就異步地將它發送到服務器。 – Katana314

    回答

    0

    你想做的事,是不可能的使用情況下,有沒有辦法抓住了這一事件的回報,你可以做的是嘗試按下按鈕,重新加載或關閉標籤之前,在用戶的答案

    function onMouseLeave(e){ 
         var pageX = e.pageX || e.clientX; 
         var pageY = e.pageY || e.clientY; 
         if (pageX < 0 || pageY < 0 || pageY < top) { 
          if(confirm('exit intension ?')){ 
           alert('yes'); 
          }else{ 
          alert('no'); 
          } 
         } 
        } 
    
        var body = document.body; 
    
        body.addEventListener('mouseleave',onMouseLeave); 
    
    +0

    還留在同一頁面,上面的代碼 –

    +0

    我會爲你建立一個代碼,我會在幾分鐘後回覆。 –

    +0

    好吧,我在等你的答案。 ! –

    0

    這一個應該工作。請參閱:https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload

    window.addEventListener("beforeunload", function (e) { 
     
        var confirmationMessage = "\o/"; 
     
    
     
        e.returnValue = confirmationMessage;  // Gecko, Trident, Chrome 34+ 
     
        return confirmationMessage;    // Gecko, WebKit, Chrome <34 
     
    });




    相關問題