2016-08-19 40 views
0

我有一個activestatus var,它告訴是否保存到文件已完成或未保存文件未保存activestatus在這種情況下將爲true如果用戶向後按瀏覽器或嘗試鍵入不同的網址,然後他會彈出一個對話框,提示「你沒有保存要保存的更改?是的不」。Javascript函數在離開窗口之前詢問狀態是否爲真

這裏是我試過到目前爲止

var activeInput=true; 
window.onbeforeunload =checkNow; 

    function checkNow(){ 
     if(activeInput==true){ 
      alert('please save your changes'); 
      return "Do you want to leave?" 
     }else{ 
      alert('gonow'); 
      return true; 
     } 

    } 

基本上我要打電話,只有當用戶想離開窗口,並保存到文件中未完成的功能。

+2

[當用戶離開網頁時檢測的最佳方法?](http://stackoverflow.com/questions/147636/best-way-to-detect-when-a-user-leaves-a -web-page) –

+0

基於變量我想打電話給 –

+0

http://stackoverflow.com/q/7080269/215552 –

回答

2

嘗試使用addEventListener,並使用e.returnValue來顯示消息。

var activeInput=true; 

window.addEventListener('beforeunload', checkNow); 

function checkNow(e) { 
     if (activeInput === false) return true; 
     var message = "Are you sure you want to leave this page? Ensure you save any changes."; 
     e.returnValue = message; 
     return message; 
} 

這是jsFiddle。您可以閱讀更多關於onbeforeunload事件的信息,包括e.returnValuehere的行爲。

+0

@SudarshanKalebere如果它適合你,請將它標記爲正確。 –

+0

它的說法等5分鐘,所以我說wating,它說你可以在2分鐘內接受ans –

+0

你寫的消息沒有被調用,它的調用默認消息,並且它也在我的activeINput爲true時運行。 –

相關問題