截取地址栏的参数
代码如下:
export default {
name: "Home",
data() {
return {
token: "",
},
created() {
let url = this.UrlParamHash(window.location.href);
this.token = url.token;
window.localStorage.setItem("token", this.token);
},
methods: {
// 转换地址栏的url
UrlParamHash(url) {
var obj = {};
var arr =
url.indexOf("?") > -1 ? decodeURI(url).split("?")[1].split("&") : ""; // 解码,并以? 和 & 符号进行分割
//遍历数组
for (var i = 0; i < arr.length; i++) {
obj[arr[i].split("=")[0]] = unescape(arr[i].split("=")[1]);
}
// console.log(obj);
return obj;
},
},
};
indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1
// 如上面函数中判断是否存在?
let url = 'https://www.iconfont.cn/user/detail?spm=a313x.7781069.1998910419.dfa9d9a29&uid=6658226'
let trueOrFalse = url.indexOf("?") > -1
console.log(trueOrFalse ); // true
decodeURI()函数可对 encodeURI() 函数编码过的 URI 进行解码
unescape() 函数可对通过 escape() 编码的字符串进行解码。
如下代码适用于微信扫一扫进入小程序首页之后截取链接的地址栏及需要截取地址栏的参数等等
UrlParamHash(url) {
var obj = {};
var arr =
url.indexOf("?") > -1 ? decodeURI(url).split("?")[1].split("&") : ""; // 解码,并以? 和 & 符号进行分割
//遍历数组
for (var i = 0; i < arr.length; i++) {
obj[arr[i].split("=")[0]] = unescape(arr[i].split("=")[1]);
}
// console.log(obj);
return obj;
},