window.location.search为空原因

2021-11-01  本文已影响0人  书简虫子

正常情况下获取到的应该是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取值为空。

上一篇 下一篇

猜你喜欢

热点阅读