2013-04-27 73 views
0

我想在用戶單擊瀏覽器後退按鈕時顯示警告框。我發現這一點,但它顯示了重裝..在瀏覽器後退按鈕上顯示警告消息,但不顯示刷新時的警報

$(window).bind("beforeunload", function() { 
    return "HI"; 
}); 

編輯: -

現在我想這一個它顯示後退按鈕警告框,但它也能顯示刷新我不想that.Code是: -

var links = document.getElementsByTagName('a'); 
for (var i = 0; i < links.length; i++) 
{ 
    links[i].onclick = setGlobal; 
} 
function setGlobal() 
{ 
    window.linkClicked = true; 
} 
window.onbeforeunload = function() 
{ 
    if (typeof window.linkClicked == 'undefined' || !window.linkClicked) 
    { 
     return "Are you sure?" 
    } 
} 

這表明,甚至當我來到這個網頁,我不想,我想如果他在這個頁面上的返回按鈕,用戶點擊該提示框。

請進入此新的任何幫助將不勝感激。提前感謝。

+0

http://stackoverflow.com/questions/1119289/how-to-show-the-are-you-sure-you-want-to-navigate-away-from-this -page-when-ch – Guy 2013-04-27 10:23:34

+0

爲什麼要在按下後退按鈕時顯示消息? – Quentin 2013-04-27 10:25:59

+0

@Quentin我的頁面中有一些表單類型,如果用戶在不保存表單的情況下點擊後退按鈕,他應該提醒您保存表單 – 2013-04-27 10:31:19

回答

0

這是一個想法(看起來你已經在使用jQuery)。

首先,你需要捕獲「beforeunload」事件(你沒有):

// Display browser warning message when back/forward/reload or hyperlink navigation occurs 
$(window).on('beforeunload', function(e) { 
    console.log('page navigation captured'); 
    return 'By leaving this page you will lose the data you have entered here.'; 
}); 

其次,你需要允許來自某些元素未被破壞的導航(例如帶class =所有元素「允許 - 導航「):

// Disable capture for certain elements 
$('.allow-navigation').on('click', function(e) { 
    $(window).off('beforeunload'); 
    console.log('page navigation allowed'); 
});