使用window.location.hash
我明白了:
http://example.com --> ''
http://example.com# --> ''
http://example.com#ahihah --> '#ahihah'
但是,我需要区分这两种情况:
http://example.com --> ''
http://example.com# --> '#'
http://example.com#ahihah --> '#ahihah'
所以当url(第一种情况)中没有哈希时,可以使用空字符串,但如果有哈希符号,我希望得到值'#'
。这在JavaScript中是否可行?
我已经尝试过了。
var hash = window.location.hash;
var href = window.location.href;
if (hash !== '') {
return link.hash;
}
if (href.slice(-1) === '#') {
return '#';
}
return '';
但看起来像一个容易出错的方法。可能是网址中的查询字符串以#
结尾,该函数将落入返回if
而不是'#'
的第二个''
?
答案 0 :(得分:1)
你的方法很好。
查询字符串中不能包含#
(它需要编码为%23
,然后编译为href.slice(-1) === 3
),因为这会被解释为哈希的开头,不是查询字符串的一部分。