最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • JavaScript 解析 url 方式总结

    正文概述 掘金(tiodot)   2020-12-27   440

    常见的 url 的组成如下图:

    JavaScript 解析 url 方式总结 来源(URL 对象)

    当然 URL 还可以包含username 和 password字段,但一般只是存在标准中了,我是没有见过这种用法。

    1. 标准 Api (URL 和 URLSearchParams)

    使用URL构造函数可以创建一个构造一个 url 的对象,用法如下:

    const url = new URL(url, [base]) // base可选,可以简单理解就是前缀的意思,如果有base参数,等价于Node中的 path.resolve(url, base)
    

    举一个具体的例子: JavaScript 解析 url 方式总结 可以看到url的功能之强大,使用之方便,唯一的问题就是 IE 支持不太好,具体可以看 MDN上的URL详细介绍

    里面有个 searchParams 属性,挺有意思的,可以很便利的获取 query 中key/value,这个属性是 URLSearchParams 的一个实例,具体看例子: JavaScript 解析 url 方式总结 URLSearchParams 主要用于处理query的参数,主要问题还是不兼容IE,其他均好,也可以 web-worker中使用

    2. 使用 a 标签形式

    如果是获取url的标准组成部分,可以构造一个a标签,然后浏览器会自动解析相关属性:

    function parseUrl(url) {
      const el = document.createElement('a')
      el.href = url
      return el
    }
    

    本质上构建一个html的元素,而 a 标签继承自 HTMLAnchorElement 里面包含url的标准属性的解析。 如果需要实现 URLSearchParams 的功能,就只能通过js解析了, 提供一个简单的处理函数:

    function parseQuery() {
      const search = location.search.slice(1)
      const pairs = search ? search.split('&') : []
      const query = {}
      for (let i = 0; i < pairs.length; ++i) {
        const [key, value] = pairs[i].split('=')
        query[key] = query[key] || decodeURIComponent(value)
      }
      return query
    }
    

    总结

    提供常见的两种解析 url 的方式, 如果可以不用兼容 IE,使用标准的 URL 和 URLSearchParams 方便些,否则还是使用些开源的库,或者使用上述所说的第二种方案。


    起源地下载网 » JavaScript 解析 url 方式总结

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元