javascript - 从 URL 中删除哈希值而不是使用 PushState 的更好方法

标签 javascript jquery

我有一个小脚本可以从网址中删除哈希值,但是它导致了一个问题。因为我正在影响历史记录,所以它不允许用户使用浏览器中的后退按钮返回到他们所在的上一页。有可能有更干净的方法来做到这一点吗?

//Tab links in navbar:
$(document).ready(function() {
    function navHash() {
        var hash = document.location.hash;
        if (hash) {
            history.pushState('', document.title, window.location.pathname);
            $('.nav-stacked a[href="'+hash+'"]').tab('show');
        }
    }
    navHash();
    $(window).on('hashchange', navHash)
});

最佳答案

以防万一其他人偶然发现这个问题,这里是更正后的代码。

//Tab links in navbar:
$(document).ready(function() {
    function navHash() {
        var hash = document.location.hash;
        if (hash) {
            history.replaceState('', document.title, window.location.pathname);
            $('.nav-stacked a[href="'+hash+'"]').tab('show');
        }
    }
    navHash();
    $(window).on('hashchange', navHash)
});

关于javascript - 从 URL 中删除哈希值而不是使用 PushState 的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45615250/

相关文章:

jquery数据表固定列创建额外的标题

javascript - jquery ui可排序修改创建时的html

javascript - .css() 中的 jQuery 增量百分比变化

javascript - 导入函数的性能问题

javascript - 替换所有出现的字符,除非它是字符串中的最后一个字符(javascript)

javascript - 以 Angular 绑定(bind)时,输入[数字]字段不显示字符串值

javascript - 控制 CSS 动画

javascript - 从下拉列表中实时预览 AJAX 函数

javascript - Highcharts 解析的深入分析未显示在页面上,但显示在控制台中

javascript - 如何使用GAS中的HTMLService向jQuery日期选择器添加默认日期?