今天分享一个Web前端开发TIPS:用原生Javascript获取当前访问地址以及一些参数。这个应用用的非常多,比如url传参给下一个页面等等。废话不多说,一起学习下吧。
一、js获取当前域名有2种方法
var domain = document.domain; var domain = window.location.host;
二、获取当前Url的4种方法
var url = window.location.href; var url = self.location.href; var url = document.url; var url = document.location;
三、获取当前相对路径的方法
function GetUrlRelativePath(){ var url = document.location.toString(); var arrUrl = url.split("//"); var start = arrUrl[1].indexOf("/"); var relUrl = arrUrl[1].substring(start);//stop省略,截取从start开始到结尾的所有字符 if(relUrl.indexOf("?") != -1){ relUrl = relUrl.split("?")[0]; } return relUrl; }
四、获取当前Url参数的方法
function getQueryVariable(variable){ var query = window.location.search.substring(1); var vars = query.split("?"); for (var i=0;i<vars.length;i++) { var pair = vars[i].split("="); if(pair[0] == variable){return pair[1];} } return(false); }
提示:获取参数的时候根据引用不同设置url.split("?")里面的符号,有时候是&,有时候是?,或者其他的。
例1
比如有一个URL地址:https://www.xxx.com/?campaignId=activity004
我想获取的campaignId参数值。这时候我们要用到第四种方法。代码如下:
var campaignId = getQueryVariable("campaignId")
调用getQueryVariable函数,后面写入参数名,即可得到参数值。
例2
比如有一个URL地址:https://www.xxx.com/?campaignId=activity004&cTag=123
我需要把cTag的参数传给下后面的页面。这时候,我们需要改变下getQueryVariable里的vars变量的定义:
var vars = query.split("&");
注意:有时候后台会反馈回来,你传给去的值是false或者undefined,这个问题是很多新手会犯的错误。我们传过去之前先要判断这个值【ctagId】是否存在。如下代码:
if(ctagId){ if(accountUrl.indexOf("?") != -1){ url = accountUrl+"&cTag="+ctagId; }else{ url = accountUrl+"?cTag="+ctagId; } }else{ console.log("Url has no cTag!") }
并且还有个问题就是,有时候获取的URL地址参数排序是混乱的,所以还要对参数前面的符号进行判断如果是第一个参数,执行对应的判断。
OK,URL传值的就说这么多,有问题的童鞋可以加群咨询。
网友评论文明上网理性发言 已有0人参与
发表评论: