momomo
<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对象来获取我们需要的信息,本文从另外一个途径来解决这个问题,而且更加巧妙

分类:

技术点:

相关文章: