<script>
function parseURL(url) {
var a = document.createElement(\'a\');
//创建一个链接
a.href = url;
return {
source: url,
protocol: a.protocol.replace(\':\', \'\'),
host: a.hostname,
port: a.port,
query: a.search,
params: (function () {
var ret = {},
seg = a.search.replace(/^\?/, \'\').split(\'&\'),
len = seg.length,
i = 0,
s;
for (; i < len; i++) {
if (!seg[i]) {
continue;
}
s = seg[i].split(\'=\');
ret[s[0]] = s[1];
}
return ret;
})(),
file: (a.pathname.match(/\/([^\/?#]+)$/i) || [, \'\'])[1],
hash: a.hash.replace(\'#\', \'\'),
path: a.pathname.replace(/^([^\/])/, \'/$1\'),
relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [, \'\'])[1],
segments: a.pathname.replace(/^\//, \'\').split(\'/\')
};
}
var myURL = parseURL(\'http://abc.com:8080/dir/index.html?id=255&m=hello#top\');
myURL.file; // = \'index.html\'
myURL.hash; // = \'top\'
myURL.host; // = \'abc.com\'
myURL.query; // = \'?id=255&m=hello\'
myURL.params; // = Object = { id: 255, m: hello }
myURL.path; // = \'/dir/index.html\'
myURL.segments; // = Array = [\'dir\', \'index.html\']
myURL.port; // = \'8080\'
myURL.protocol; // = \'http\'
myURL.source; // = \'http://abc.com:8080/dir/index.html?id=255&m=hello#top\'
</script>
JavaScript中有时需要用到当前的请求路径等涉及到url的情况,正常情况下我们可以使用location对象来获取我们需要的信息,本文从另外一个途径来解决这个问题,而且更加巧妙