在浏览器后退按钮上显示警报消息,但在刷新时不显示警报

时间:2013-04-27 10:12:17

标签: javascript jquery

我想在用户点击浏览器后退按钮时显示警告框。我找到了这个,但它显示在重新加载..

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

编辑: -

现在我尝试了这个它在后退按钮上显示警告框但它也显示在刷新我不想要那个。代码是: -

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?"
    }
}

即使我来到这个页面,它也显示警告框我不想要用户点击后退按钮,如果他在这个页面上。

请接受我的新任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分: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 =“allow-navigation”的元素):

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