我应该使用哪个事件从地址栏中获取网址

时间:2014-03-07 11:22:28

标签: jquery

我希望每当我从地址栏更改浏览器网址时。 我想从警告框中的地址栏中获取新地址,并要求用户想要继续,如果是,那么我必须允许新地址加载内容。

每当用户更改浏览器地址时,我应该使用哪个事件从地址栏中获取新地址。

1 个答案:

答案 0 :(得分:1)

这是onbeforeunload事件:

window.onbeforeunload = function() {
    return "Really leave?";
};

浏览器将处理使用相关按钮显示消息,并保留在页面上(如果用户选择这样做)或保留(如果用户选择这样做)。

这很容易被滥用。其中少数用例之一是用户已经开始做某事(例如,在SO上编写答案)并尝试离开而不完成(发布答案)。所以通常你会有一个你先检查的标志:

var uncommittedChanges = false;
window.onbeforeunload = function() {
    if (uncommittedChanges) {
        return "You have uncommitted changes. Really leave and lose them?";
    }
};

...当然,看到用户开始做某事的代码会设置标志,然后在用户提交更改时再次清除该标志。


重新评论:

  

它会在弹出框中显示新输入的地址

不,它不会。或者至少,我从未见过这样的浏览器。除了您的消息之外,还取决于浏览器显示的内容。