• 利用a标签自动解析URL


    对于window.location,我们比较熟悉,它有protocol,hostname,host,port,search,hash,href,pathname等属性,a标签也和window.location一样,也有这样属性,这样可以方便我们分析网址,闲话少说,上代码。

     
     1 function parseURL(url) {
     2     var a =  document.createElement('a');
     3     a.href = url;
     4     return {
     5         source: url,
     6         protocol: a.protocol.replace(':',''),
     7         host: a.hostname,
     8         port: a.port||'80',
     9         query: a.search,
    10         params: (function(){
    11             var ret = {},
    12                 seg = a.search.replace(/^?/,'').split('&'),
    13                 len = seg.length, i = 0, s;
    14             for (;i<len;i++) {
    15                 if (!seg[i]) { continue; }
    16                 s = seg[i].split('=');
    17                 ret[s[0]] = s[1];
    18             }
    19             return ret;
    20         })(),
    21         file: (a.pathname.match(//([^/?#]+)$/i) || [,''])[1],
    22         hash: a.hash.replace('#',''),
    23         path: a.pathname.replace(/^([^/])/,'/$1'),
    24         relative: (a.href.match(/tps?://[^/]+(.+)/) || [,''])[1],
    25         segments: a.pathname.replace(/^//,'').split('/')
    26     };
    27 }
     

    测试地址

    console.log(parseURL("http://www.w3school.com.cn/jsref/dom_obj_anchor.asp?type=2#id2"));

    结果如下

     
     1 {
     2     file: "dom_obj_anchor.asp",
     3     hash: "id2",
     4     host: "www.w3school.com.cn",
     5     params: {type: "2"},
     6     path: "/jsref/dom_obj_anchor.asp",
     7     port: "80",
     8     protocol: "http",
     9     query: "?type=2",
    10     relative: "/jsref/dom_obj_anchor.asp?type=2#id2",
    11     segments: [0: "jsref",1: "dom_obj_anchor.asp"],
    12     source: "http://www.w3school.com.cn/jsref/dom_obj_anchor.asp?type=2#id2"
    13 }
     
  • 相关阅读:
    仿苹果原生头部动画
    cookie VS sessionstorge VS localstorge
    require实现单页应用程序(SPA)
    物体position:absolute后设置left:50%发生的有趣小事
    C/JS_实现选择排序
    C/JS_实现冒泡排序
    C_求质数
    C/JS_二分法查找
    JS_高程6.面向对象的程序设计(2)创建对象_3 构造函数存在的问题
    CSS_常见布局
  • 原文地址:https://www.cnblogs.com/tiger95/p/7403323.html
Copyright © 2020-2023  润新知