正常情况下获取到的应该是url里问号及之后的内容
一般写法:let urls = window.location.search.substr(1)取到问号后面的内容
const paramArr = urls.split('&').map(item => item.split('='))取到每个参数数组
例1: 'http://a.a.com/data?id=1&time=2018-06-07'
此时通过 window.location.search 能够正常获取到url中的查询参数 ?id=1&time=2018-06-07
例2:'http://a.a.com/#/data?id=1&time=2018-06-07'
此时通过 window.location.search 获取到的参数为空"",这是因为使用了hash导致,因为hash会将url中第一个#后的内容都作为hash内容,所以search为空了.
注意search和hash的区别,如果URL中“?”之前有一个“#”比如:“http://localhost:63342/index.html#/version?type=35&id=5”那么使用window.location.search得到的就是空(“”)。因为“?type=35&id=5”串字符是属于“#/version?type=35&id=5”这个串字符的,也就是说查询字符串search只能在取到“?”后面和“#”之前的内容,如果“#”之前没有“?”search取值为空。
网友评论