zoukankan      html  css  js  c++  java
  • 利用a标签的href属性拿到请求路径中的请求参数和哈希值

    <script>
        function queryUrl(str){//封装一个方法
            let link = document.createElement('a')//创建一个a标签,这里我们不需要添加到页面上。
            link.href=str//给a标签的href属性赋值。我们要截取的那个路径
            let obj={}
            let search = link.search.substr(1)//利用a标签的serach属性拿到?号后面的请求参数,并且用substr截取,只要?号后面的参数
            let hash = link.hash.substr(1)//利用a标签的hash属性拿到#号后面的请求参数,并且用substr截取,只要#号后面的参数
            hash?obj.hash=hash:''//判断有没有这个hash值,有就放在obj里,没有就啥也不干
            if(search){//判断有没有search
                search = search.split('&')//先用&截取一下,他就会变成一个数组:["name=xiaopi", "age=20", "sex=%E5%A5%B3"]
                for(let i=0;i<search.length;i++){//然后遍历这个数组,分别截取它每一项里面的“=”号:
                    console.log(search[i])//name=xiaopi、age=20、sex=%E5%A5%B3
                    let item = search[i].split('=')//截取“=”号,结果是:
                    console.log(item)//["name", "xiaopi"]、["age", "20"]、 ["sex", "%E5%A5%B3"]
                    obj[item[0]]=item[1] //然后给obj赋值。就是截取后的每一项的下标为0的是对象的属性,下标为1的为下标为0的属性的值
                }
            }
            return obj//最后把obj返回就行了。
        }
        let url = "http://www.baidu.com/type?name=xiaopi&age=20&sex=女#程序员"
       console.log(queryUrl(url))
    </script>
  • 相关阅读:
    进程间通讯----消息队列和共享内存方式的实现
    初探 Yii2 的测试模式 index-test.php
    nginx缓存功能的设置
    php五大运行模式CGI,FAST-CGI,CLI,ISAPI,APACHE模式
    workerman如何写mysql连接池
    Varnish 一般是放在 Nginx 前面还是后面的?
    关于PATH_INFO
    Java8 Lambda表达式
    synchronized的一些记录
    类和实例
  • 原文地址:https://www.cnblogs.com/menggege/p/14173429.html
Copyright © 2011-2022 走看看