2009-10-06 75 views
1

我正在通過以下代碼跟蹤窗口關閉/導航事件。onbeforeunload事件後

window.onbeforeunload = winClose; 
    function winClose() { 
     if (isDataChanged) {  
      return "Are you sure you want to close?"; 
     } 
    } 

這顯然會彈出與OK確認/取消。瀏覽器關閉時的

這裏我想在按下OK/Cancel後調用一個事件。怎麼做?

回答

2

嘗試:

window.onbeforeunload = winClose; 
    function winClose() { 
     if (isDataChanged) { 
      setTimeout(function() { do_canceled_event(); }, 500); 
      return "Are you sure you want to close?"; 
     } 
    } 

使用setTimeout的,你把它拿出來的正常流動和js在頁面上,而該對話框打開時停止。一旦處理繼續,應該運行do_canceled_event()。希望有所幫助。

(note:not tested)

+0

如果按OK按鈕怎麼辦? – Madhu 2009-10-06 05:56:49

+0

那麼它取決於他們離開頁面的速度。如果這是關鍵或突兀的話,那麼onbeforeunload可能不是最好的地方,但如果它只是顯示一個div來說「不要忘記保存!」,那麼它並不重要。 – 2009-10-06 06:00:19

+0

也,如果延遲是可以接受的,只需增加定時器的持續時間。沒有辦法知道用戶是按下了「確定」還是「取消」......只是後面的腳本是否會執行 – 2009-10-06 06:01:26

相關問題