本文已参与[新人创作礼]活动,一起开启掘金创作之路。
js获取URL参数
js代码获取URL参数的方法:
getUrlParam(param) {
// 获取由全部参数组成的字符串。
let query = window.location.search.substring(1);
// 分割参数,得到每一个参数字符串组成的数组。
let vars = query.split('&');
// 遍历数组,得到每一个参数字符串。
for (let i = 0; i < vars.length; i++) {
// 分割每一个参数字符串,得到参数名和参数值组成的数组。
var pair = vars[i].split('=');
// 如果参数名等于传入的param,则返回该值。
if (pair[0] == param) {
return decodeURI(pair[1]);
}
}
// 若参数不存在,则返回false。
return false;
}
直接调用getUrlParam(param)方法,会解析当前页面的URL。
若当前页面的URL为:
http://localhost:8080/school/class?schoolNumber=1&classNumber=100
那么如果想要获取classNumber的值,则使用getUrlParam("classNumber")就能获取。
其中,getUrlParam(param)方法中的参数param为URL中某个参数名。
window.location
window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。
在使用时,window前缀可忽略,常用的window.location:
- window.location.hostname 返回 web 主机的域名。
- window.location.pathname 返回当前页面的路径和文件名。
- window.location.port 返回 web 主机的端口 (80 或 443)。
- window.location.protocol 返回所使用的 web 协议(http: 或 https:)。
- window.location.href 返回当前页面的 URL。
- window.location.search 获取从?开始的URL。
- window.location.hash 获取从#开始的URL。
- window.location.assign(URL)方法页面跳转,将当前文档转为新的文档。
- window.location.replace(URL)方法页面跳转,替换当前文档为新的文档。
如location.assign("juejin.cn"), 则会前往掘金首页。
加载 URL 指定的新的 HTML 文档,相当于一个链接,跳转到指定的URL,当前页面会转为新页面内容,可以点击后退返回上一个页面。
使用replace时,不会被浏览器记录。有三个页面 A B C,若使用都assign跳转,A->B->C,在C页面点击左上角回退键会回到B,B页面点击回退键会回到A。若在B页面使用replace跳转,则A->B->C和assign一样,但是点击C页面左上角回退键时,会直接返回到A页面。
window.location.search.substring(1)就是通过window.location.search获取了?(包括?)后面的字符串。使用substring(1)就是获取从索引1开始到最后的字符串,相当于去掉问号。即由?schoolNumber=1&classNumber=100变为schoolNumber=1&classNumber=100。
window.location.search
window.location.search.substring(1)
使用split('&')分割字符串,将参数字符串转换成数组。
遍历数组,使用split('=')分割字符串,获取参数名和参数值。
Vue获取URL参数
获取参数的对象:
this.$route.query
获取具体的参数:
this.$route.query.classNumber