2010-07-01 50 views
3

我試圖實現一個基本的彈出窗口,詢問用戶他們是否真的想離開一個頁面,類似於如果我試圖關閉窗口一半寫這個消息。Javascript - 離開頁面時確認

我意識到這是通常不被接受的事情,但我有充足的理由要這樣做。

我有它通過使用下面的代碼工作:

function confirm_exit(e) { 
     if(!e) e = window.event; 

     e.cancelBubble = true; 
     e.returnValue = 'Are you sure you want to leave?'; 

     if (e.stopPropagation) { 
      e.stopPropagation(); 
      e.preventDefault(); 
     } 
    } 

不過,我真的很想做的是顯示的消息時,他們離開頁面,除非他們離開點擊的兩個環節一個。

(我剛剛意識到這聽起來像我可能要迫使他們點擊一個廣告什麼的!)

之所以使用這是在預訂過程中,用戶可以在任何確認結束他們的預訂或進一步預訂之前進行確認。 (這些將是我不喜歡彈出消息顯示的兩種可能性,彈出窗口中的消息只會說'您的預訂尚未確認,您確定要離開嗎?')。

無論如何要實現這一目標嗎?

任何意見讚賞。

謝謝。

+1

可能的重複[如何在適當的時候顯示onbeforeunload對話框?](http://stackoverflow.com/questions/2663728/how-to-display-onbeforeunload-dialog-when-never) – kennytm 2010-07-01 08:19:19

回答

3

在頭部:

<head> 
... 
<script type="text/javascript"> 
var disabledConfirm_exit=false; 
</script> 
</head> 

在被允許離開兩個鏈接,你可以添加

onclick="disabledConfirm_exit=true;" 

而且confirm_exit內

function confirm_exit(e) { 
    if(disabledConfirm_exit) return; 
    if(!e) e = window.event; 

    e.cancelBubble = true; 
    e.returnValue = 'Are you sure you want to leave?'; 

    if (e.stopPropagation) { 
     e.stopPropagation(); 
     e.preventDefault(); 
    } 
} 
2

窗口.unload功能將幫助我們在關閉瀏覽器或重定向到任何其他頁面時執行一些JavaScript。資源:http://api.jquery.com/unload/