0

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

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

即使当我来到此页面时,它也会显示警报框,如果用户在此页面上单击后退按钮,我不想要我想要的。

请我是新手,任何帮助将不胜感激。在此先感谢。

4

1 回答 1

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');
});
于 2015-07-07T11:44:55.253 回答