项目场景:
vue跳转新页面后,清除url里面的参数,就是上一个页面带过来的参数,只用一次
代码
mounted () {
this.$nextTick(() => {
let url = this.getnewurl()
window.history.replaceState(null, null, url);
})
},
methods: {
//清除全部参数
// getnewurl (name) {
// var loca = window.location;
// var baseUrl = loca.origin + loca.pathname + "?";
// var query = loca.href.substr(1);
// if (query.indexOf(name) > -1) {
// var obj = {}
// var arr = query.split("&");
// for (var i = 0; i < arr.length; i++) {
// arr[i] = arr[i].split("=");
// obj[arr[i][0]] = arr[i][1];
// }
// delete obj[name];
// var url = baseUrl + JSON.stringify(obj).replace(/[\"\{\}]/g, "").replace(/\:/g, "=").replace(/\,/g, "&");
// return url
// }
// },
//根据参数名去清除,可以多个
getnewurl () {
let url = document.location.href;
let reg = /[^\w](url参数名|url参数名)=?([^&|^#]*)/g;
url = url.replace(reg, "");
reg = /&&/g;
url = url.replace(reg, "");
reg = /&#/g;
url = url.replace(reg, "#");
reg = /\?#/g;
url = url.replace(reg, "#");
// url = url.replaceAll(document.domain,"");
// url = url.replaceAll("http://","");
// url = url.replaceAll("https://","");
reg = /\?#/g;
url = url.replace(reg, "#");
return url;
},