如何从 URL 获取片段标识符(哈希 # 后的值)?

IT技术 javascript jquery url url-fragment
2021-02-10 17:07:42

例子:

www.site.com/index.php#hello

使用 jQuery,我想把值hello放在一个变量中:

var type = …
6个回答

不需要 jQuery

var type = window.location.hash.substr(1);
OMG,您需要检查 url 哈希多少次才能产生明显的差异?一百万?在这种情况下,“适度增加”是一种巨大的夸大。:-)
2021-03-16 17:07:42
来自变量的 URL 怎么样?此答案仅适用于当前window.location值。
2021-03-20 17:07:42
不够jQuery!(开个玩笑:+1。)
2021-03-26 17:07:42
我刚刚了解到 # 可以用作“哈希”,它在 JavaScript 中用作标识符/关键字。惊人的
2021-04-02 17:07:42
您还可以使用.slice(1)代替.substr(1)which 来适度提高性能,尽管它在现实生活中没有区别。
2021-04-10 17:07:42

您可以使用以下代码来完成:

var url = "www.site.com/index.php#hello";
var hash = url.substring(url.indexOf('#')+1);
alert(hash);

看演示

注意:IE8 不支持 indexOf
2021-03-30 17:07:42
老实说,IE8 太不安全了,所有支付网关基本上都会在下周(2018 年 6 月 30 日)放弃任何不支持 TLS 1.2 的浏览器,你根本无法从他们那里付款。这使得所有这些旧的蹩脚浏览器对任何电子商务客户都毫无用处。
2021-04-06 17:07:42
@SchalkKeun 幸运的是,现在在 18 年它几乎消失了。但对于那些还需要处理那个传奇的人来说,应该意识到这一点。
2021-04-08 17:07:42
var url ='www.site.com/index.php#hello';
var type = url.split('#');
var hash = '';
if(type.length > 1)
  hash = type[1];
alert(hash);

jsfiddle 上的工作演示

if语句可以缩短为var hash = type[1] || "";.
2021-04-08 17:07:42

这很容易。试试下面的代码

$(document).ready(function(){
  var hashValue = location.hash.replace(/^#/, '');  
  //do something with the value here  
});
var hashValue = location.hash.replace(/^#/, '');
2021-04-02 17:07:42

使用以下 JavaScript 从 URL 获取哈希 (#) 后的值。您不需要为此使用 jQuery。

var hash = location.hash.substr(1);

我从这里得到了这个代码和教程 - How to get hash value from URL using JavaScript