2013-04-27 76 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'); 
});