• 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
    

      

  • 相关阅读:
    Codeforces Round #470 (rated, Div. 2, based on VK Cup 2018 Round 1)C. Producing Snow
    day69 Django--Form组件
    day68 Django--中间件
    day67 Cookie&Session
    day66 AJAX
    day62 Django框架--视图系统&路由系统
    day65 django--ORM3
    day63 django--ORM
    Day64 django--ORM2
    Day61 Django框架--模板语言2
  • 原文地址:https://www.cnblogs.com/panax/p/11792252.html
Copyright © 2020-2023  润新知