今天项目遇到一个需求,需要把 A 标签链接中的 hash 部分取出来,于是想 google 下看看有没有还不知道的 js 函数,意外的在 github 上 get 到一个巧妙 js 解析 url 的小技巧:

1
2
3
4
5
6
7
8
9
10
11
12
13
var parser = document.createElement('a');
parser.href = "http://example.com:3000/pathname/?search=test#hash";
parser.protocol; // => "http:"
parser.hostname; // => "example.com"
parser.port; // => "3000"
parser.pathname; // => "/pathname/"
parser.search; // => "?search=test"
parser.hash; // => "#hash"
parser.host; // => "example.com:3000"
// 也就是说只要获取到 dom 即可获取解析后的 url 信息
document.querySelector('#logo a').hash; // => '#logo'