zoukankan      html  css  js  c++  java
  • window.location.search 为何在url 带# 号时获取不到 ?

    1. 我们在获取url参数时,会常常用到截取参数
    getUrlParam(name) {
    				const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)') // 构造一个含有目标参数的正则表达式对象
    				const r = window.location.search.substr(1).match(reg) // 匹配目标参数
    				if (r != null) {
    					return unescape(r[2]) // 返回参数值
    				} else {
    					return null
    				}
    			}
    

    2. 但这样 window.location.search 这样常常会获取不到。

    原因是; search只能在取到“?”后面和“#”之前的内容,如果“#”之前没有“?”search取值为空。它默认参数和#是一个字符串

    3.完善

        function getQueryString(key)
        {
            var after = window.location.search;
            if(after.indexOf('?') === -1) return null; //如果url中没有传参直接返回空
    
            //key存在先通过search取值如果取不到就通过hash来取
            after = after.substr(1) || window.location.hash.split("?")[1];
    
            if(after)
            {
                var reg = new RegExp("(^|&)"+ key +"=([^&]*)(&|$)");
                var r = after.match(reg);
                if(r != null)
                {
                    return  decodeURIComponent(r[2]);
                }
                else
                {
                    return null;
                }
            }
        }
    

      4.对于没有#号url ,最好的是方法是:

    let data = {};
    				let src = window.location.href
    				let index = src.indexOf("?");
    				if (index === -1) {
    					return data;
    				}
    				let dataStr = src.substring(src.indexOf("?") + 1);
    				let dataArray = dataStr.split("&");
    				for (let i = 0; i < dataArray.length; i++) {
    					let param = dataArray[i].split("=");
    					data[param[0]] = param[1];
    				}
    // urlData 是{} 放在data中。
    				this.urlData = data
    

      

  • 相关阅读:
    gcc代码反汇编查看内存分布[1]: gcc
    centos5.5 安装git
    裸机代码(uboot) : clear bss
    互联网协议入门
    git从github下载代码
    linux账户管理(centos)
    jz2440: linux/arch/arm/下面的plat-和mach-
    位置无关码
    【漫画】什么是外部排序?【转】
    快速排序 Vs. 归并排序 Vs. 堆排序——谁才是最强的排序算法
  • 原文地址:https://www.cnblogs.com/panax/p/11792252.html
Copyright © 2011-2022 走看看