2012-09-09 39 views
0

可能重複:
Capturing result of window.onbeforeunload confirmation dialog檢測確認頁面導航點擊該按鈕

我想使用戶確認頁面導航這樣的:

window.onbeforeunload = function(e) { 
    return "Note that any unsaved data will be lost"; 
}; 

然而,我想檢測用戶是否點擊了「留在此頁面」來做一些重要的事情。 那麼無論如何檢測哪個按鈕被點擊?

注意:我嘗試在onbeforeunload函數中添加確認,但chrome將其封鎖。

+0

一個確認is'nt需要作爲onbeforeunload功能將觸發它自己確認何時返回一個字符串,它會離開頁面或不離開頁面,這取決於用戶選擇什麼,所以這不應該成爲一個問題? – adeneo

+0

你可以用一些代碼設置jsfiddle嗎? – elclanrs

回答

1

在用戶決定留在頁面後,沒有辦法執行代碼。

您可以使用onunload事件來做某些事情,以防用戶確實不是逗留。如果你想發送一個AJAX請求,這是async: false合適的少數情況之一。

+0

實際上,只是在return語句之上的一個小超時內調用一個函數會延遲該函數的執行,直到確認被回答,並且該函數當然只在用戶決定停留 - > [FIDDLE](http ://jsfiddle.net/HNnN6/1/)... – adeneo

+0

@adeneo這似乎與鉻合作,但不是FF。 –

+0

@ D.Strout - did'nt真正的測試,只是一個想法,但似乎我在FF工作,但清理的卸載功能超時可能會是一個更好的主意,這只是提出一個觀點真的如果用戶決定留在頁面上,可以設置一個函數運行,但就我而言,這是正確的答案。 – adeneo

0

嘗試這樣

$(document).ready(function(){ 
    $('body').live('click',function(){ 
     $clicked = (this).attr("value"); 
     alert($clicked); 
    }); 
}) 

考慮到你的按鈕值應爲您的信息,如:「請注意,任何未保存的數據都將丟失」