使用 JS/jQuery 从 URL 中删除哈希
Posted
技术标签:
【中文标题】使用 JS/jQuery 从 URL 中删除哈希【英文标题】:Removing hash from URL using JS/jQuery 【发布时间】:2019-01-22 00:03:57 【问题描述】:我有以下代码:
if(window.location.hash)
var hash = window.location.hash.substring(1);
var hash = window.location.hash.substring(1);
if(hash.length > 0 && hash.search('^y([0-9]+)g([0-9]+)$') >= 0)
$('#recs').removeClass('closed');
$('#rec_select_year').val(hash.match('y([0-9]+)')[1]);
$('#rec_g_select').val(hash.match('g([0-9]+)')[1]);
$('html, body').animate(
scrollTop: $('#docs').offset().top + 200
, 0);
changeDocuments();
else
changeDocuments();
$('.filter').change(function()
updateDocumentList();
var years = $('#rec_select_year').val();
var groups = $('#rec_g_select').val();
hash = 'y' + years + 'g' + groups;
);
我在从 URL 中删除哈希时遇到了困难。我需要将 url 更改为此 http://codify.org/group/y2018g7
出于这个原因,我使用 substring() 方法来删除哈希,但是它会影响 url 并更改为 http://codify.org/group/,这基本上删除了 URL ../y2018g7 的结尾
如何将哈希更改为显示 http://codify.org/group/y2018g7 的 URL?
【问题讨论】:
您的两个示例网址中都没有哈希部分。 您能告诉您要更改的原始网址是什么吗? @McRist 原来的 URL 是 codify.org/group/#y2018g7。我试图将其更改为codify.org/group/y2018g7。但是,我不能这样做 【参考方案1】:使用RegExp
将#
替换为url
,如下所示。
var url = "codify.org/group/#y2018g7";
var regx = "/#/g";
var newUrl= url.replace(eval(regx), '');
console.log(newUrl);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
注意:上面 RegExp 中的 g 修饰符是用于全局匹配(查找所有匹配而不是在第一个匹配后停止)
【讨论】:
【参考方案2】:如果您想用空字符串替换所有哈希,这将起作用。
window.location.href.split("#").join('')
【讨论】:
以上是关于使用 JS/jQuery 从 URL 中删除哈希的主要内容,如果未能解决你的问题,请参考以下文章
如何在不刷新页面的情况下使用 JavaScript 从 window.location (URL) 中删除哈希?
如何从 ui-router 中的 url 地址中删除哈希标签 (#)