function warnuser()
{
return "Don't refresh the page.";
}
window.onbeforeunload = warnuser;
如果用戶刷新頁面,並且用戶在確認框中單擊'離開此頁',我想調用一個javascript函數,否則不需要! 我很困惑如何做到這一點。 謝謝使用Javascript調用頁面刷新功能
function warnuser()
{
return "Don't refresh the page.";
}
window.onbeforeunload = warnuser;
如果用戶刷新頁面,並且用戶在確認框中單擊'離開此頁',我想調用一個javascript函數,否則不需要! 我很困惑如何做到這一點。 謝謝使用Javascript調用頁面刷新功能
你需要攔截F5
按鍵和設置onbeforeunload
處理程序只有在這種情況下:
document.addEventListener('keydown', function(e) {
if(e.which == 116) {
window.onbeforeunload = function() {
window.onbeforeunload = null;
return "Do you really want to refresh the page?";
}
}
}, false);
請注意,這並不工作,如果用戶點擊刷新按鈕。這是不可能的。
用戶點擊與刷新按鈕的交互情況如何? –
我需要這樣做......在完成這一步的一半......只是想知道我怎麼知道用戶是否點擊了「留在本頁面」或「離開此頁面」並相應地執行一些操作。 –
如果您擁有託管該頁面的服務器端的控制權,那麼您可以通過semaphore
(wiki:semaphore)在邏輯上處理此問題。基本上它是一個旋轉鎖,它將在服務器端會話中實現。如果已經進入並且沒有以安全方式退出,則重置頁面狀態。自然地,與所有旋轉鎖一樣,必須有一個安全狀態來清除鎖。
如果刷新頁面會導致問題,那麼您可能應該專注於使其不會成爲問題,而不是首先防止人們這樣做。 – Quentin
我同意@Quentin,你可能需要符合「Post Redirect Get」範例。 –
@jezternz - 總有一種方法! :)但是沿着黑客道路將永遠支配你的代碼庫:P –