我如何从一个URL获得片段标识符(哈希#后的值)?

例子:

www.site.com/index.php#hello

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

var type = …
208631 次浏览

不需要jQuery

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

由于String.prototype.substr已弃用,请改用substring

var type = window.location.hash.substring(1);

你可以使用以下代码:

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

SEE DEMO

var url ='www.site.com/index.php#hello';
var type = url.split('#');
var hash = '';
if(type.length > 1)
hash = type[1];
alert(hash);

工作演示jsfiddle

基于A.K的代码,这里有一个Helper函数。JS小提琴这里(http://jsfiddle.net/M5vsL/1/)…

// Helper Method Defined Here.
(function (helper, $) {
// This is now a utility function to "Get the Document Hash"
helper.getDocumentHash = function (urlString) {
var hashValue = "";


if (urlString.indexOf('#') != -1) {
hashValue = urlString.substring(parseInt(urlString.indexOf('#')) + 1);
}
return hashValue;
};
})(this.helper = this.helper || {}, jQuery);

这很简单。试试下面的代码

$(document).ready(function(){
var hashValue = location.hash.replace(/^#/, '');
//do something with the value here
});

使用下面的JavaScript从URL中获取散列(#)后的值。你不需要使用jQuery。

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

我有这个代码和教程从这里- 如何获得哈希值从URL使用JavaScript

我有运行时的URL,下面给出了正确的答案:

let url = "www.site.com/index.php#hello";
alert(url.split('#')[1]);

希望这能有所帮助

获取当前文档位置的片段

var hash = window.location.hash;

从字符串中获取片段

// absolute
var url = new URL('https://example.com/path/index.html#hash');


console.log(url.hash);


// relative (second param is required, use any valid URL base)
var url2 = new URL('/path/index.html#hash2', 'http://example');


console.log(url2.hash);