针对window.location.search不存在的问题

事件起因:

前不久在项目中需要那URL中的参数进行相应的处理,我习惯性的使用了window.location.search这个方法来获取URL后面拼接的参数,以为没有什么问题,后面排查了很久找不到原因,再后面仔细检查每一行代码,猜测可能是window.location.search没有值,一排查然是这个问题●▽●

window.location.search没有值的原因:

URL中使用了 hash (指URL中带有#符号),导致URL后面携带的参数被location.hash截取走了,你再使用window.location.search得到的就是空值

具体实例:

let url = 'http://xxx.com/#/home?type=1&key=test'

//使用 window.location.search 拿到的值为 undefined
//你以为是整个window都没有,其实不是 只是window.location.search没有值
// 打印 window.location 你会发现有值

//使用window.location.hash,你会发现URL的参数在这里面 #/home?type=1&key=test

URL参数中 # 在 ? 前面,window.location.search拿不到参数值

解决方案:

方案一:
不采用window.location.search来获取URL来携带的参数值,使用window.location.href获取其他方法来获取参数值

方案二:
使用正则的方式进行解析

注:方案不止两种,我个人比较熟悉这两种

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值