Uniapp URL地址栏获取指定参数

前言

  Uniapp在URL中的参数会存在于两种位置,如下:
  http://localhost:8080/unipp?id=399#/pages/index/index?name=eagle
  当我们在页面跳转时,可以通过onLoad(option)获取到#后面的传参,而前面的参数是无法获取的。

onLoad(option){
	if (option && option.name) {
		console.log('name', name)	 // name eagle
	}
	if (option && option.id) {
		console.log('id', id)	 // 控制台不会输出
	}
}

URL地址栏获取指定参数函数封装

  该方法可满足上述两个位置的参数获取,优先从#之前的部分匹配指定的参数,若没有再匹配#后面的部分。
  该方法对于参数尾部带有两个==,以及一些未知情况,可能会造成掉参现象。
  示例:getUrlValue(‘id’)    getUrlValue(‘name’)

getUrlValue(value) {
	// 从第一个?开始,且不包括#之后,并截取掉?的部分
	var query = location.search.substring(1);
	// 从#开始的部分,并转换成数组
	var hash = location.hash.split("?");
	// query和hash均没有参数
	if (!query && hash.length < 2) {
		return ''
	}
	// 先取query部分的参数进行匹配
	var vars = query.split("&")
	for (var i = 0; i < vars.length; i++) {
		var pair = vars[i].split("=")
		if (pair[0] == value) {
			return pair[1]
		}
	}
	// query没有参数,或者有参数但没找到,则取hash部分的参数
	if (!hash[1]) {
		return ''
	}
	vars = hash[1].split("&")
	for (var i = 0; i < vars.length; i++) {
		var pair = vars[i].split("=")
		if (pair[0] == value) {
			return pair[1]
		}
	}
	return ''
},
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值