Javascript preventDefault历史记录

时间:2013-08-05 11:12:12

标签: javascript jquery browser-history hashtag

是否可以阻止浏览器历史记录返回事件?

我有一个带有哈希标签的单页网站 - 当点击历史记录时,我想滑到最后一个哈希标记位置。有没有解决方案?

3 个答案:

答案 0 :(得分:0)

无法与这些按钮或历史记录功能进行交互。

修改
正如我在下面所说,你可以使用window.onhashchange()。这是一个例子:

window.onhashchange = function(e) {
    //hash changed
    //yourFunction(location.hash);
}

没有多少,您可以从位置对象获取新哈希,我也可以从事件(e)中猜测。 查看https://developer.mozilla.org/en-US/docs/Web/API/window.onhashchange?redirectlocale=en-US&redirectslug=DOM%2Fwindow.onhashchange了解更多详情。

答案 1 :(得分:0)

尝试这一小块代码。

<html>
<head>
<script>
window.onbeforeunload = function () {
   return "you wanna to go Back????";
}
</script>
</head>
<body>
Blah Blah Blah Blah
</body>
</html>

如果按后退按钮,它将发出一个事件。 希望它有所帮助

答案 2 :(得分:0)

$(document).ready(init);

function init() {
    window.onhashchange = locationHashChanged;
}

function isSection(section) {
    if ($('.' + section).length > 0) {
        return true;
    }
    else {
        return false;
    }
}

function locationHashChanged() {
    var section = location.hash;
    var section = section.replace("#", "");
    if (isSection(section)) {
        SelectNavItem(section);
    }
}

function SelectNavItem(item) {
    $("nav a").removeClass("selected");
    $("[href=#" + item + "]").addClass("selected");
}