javascript - 如何删除除第一个之外的所有 URL 哈希值?

标签 javascript jquery url hash

嗯,在我的网站上有一个常见问题解答,用户可以通过 URL 访问特定问题,例如:

https://example.com/faq#question-1

为此,我使用 Jquery,这样:

if (window.location.hash) {
    $(window.location.hash).open();
}

但是我希望如果用户在 URL 中输入多个哈希值,这样:

https://example.com/faq#question-1#question-2#question-3#question-n

除了第一个 #question-1 之外,所有哈希值都会从 URL 中删除

我该怎么做?

编辑: 如果用户输入 https://example.com/faq#question-1#question-2#question-3#question-n 则将网址更改为 https://example.com/faq#question-1 这样只有第一个哈希出现在 url 中,并且常见问题解答只需读取单个哈希。

最佳答案

它可以像这样简单

var hash = window.location.hash;
var filtered_hash = '';
if(hash.length > 0){
  filtered_hash = '#' + hash.split("#")[1];
  window.location.hash = filtered_hash;
}

console.log(filtered_hash);

关于javascript - 如何删除除第一个之外的所有 URL 哈希值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56101594/

相关文章:

java - 为什么下载的 pdf 文件已损坏?

javascript - 客户端无限滚动 JQuery

javascript - 使用 ajax 在 codeigniter 中使用单个输入上传多个图像时出现问题

javascript - 需要将 2 个不同的 div 拉伸(stretch)到屏幕,中间有一个 div

asp.net-mvc - View 不渲染 MVC 4

file - 打开后关闭 URL 1 by 1(从文本文件读取 URL,循环)

javascript - 将 jQuery/JavaScript 代码添加到 php 文件

javascript - 使用构造函数创建的对象本身可以是函数吗?

javascript - JointJS:将 SVG 添加到链接的中心

javascript - history.pushState 和 location.hash 有什么区别?