vue开发,在页面中我们可以通过this.$route.query.id来获取id值,但是在utils/index.js文件中,有时我们也需要拿到指定参数值,就不能使用路由方法了
方法一:通过location.search可以获取到url拼接的参数(前面带有?号)
function getUrlParams(name) { let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); let param = window.location.search.substr(1).match(reg); return param && param[2]; }
方法二
///获取url中指定参数 // <param name="paras">参数名称</param> /// function request(paras) { var url = location.href; var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&"); var paraObj = {} for (i = 0; j = paraString[i]; i++) { paraObj[j.substring(0, j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=") + 1, j.length); } var returnValue = paraObj[paras.toLowerCase()]; if (typeof (returnValue) == "undefined") { return ""; } else { return returnValue; } }
方法三
function getUrlVars() { var vars = {}; var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m, key, value) { vars[key] = value; } ); return vars; }
使用如:
http://localhost?name=xxg
getUrlVars()["name"] 返回的值为 xxg
方法四
function GetUrlParam(paraName) { var url = document.location.toString(); var arrObj = url.split("?"); if (arrObj.length > 1) { var arrPara = arrObj[1].split("&"); var arr; for (var i = 0; i < arrPara.length; i++) { arr = arrPara[i].split("="); if (arr != null && arr[0] == paraName) { return arr[1]; } } return ""; } else { return ""; } }
调用方法:GetUrlParam(“id”);
举例说明:
假如当网页的网址有这样的参数 test.htm?id=896&s=q&p=5,则调用 GetUrlParam(“p”),返回 5。