51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

用原生Javascript获取当前访问地址以及一些参数

今天分享一个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)
未经允许不得转载:工具盒子 » 用原生Javascript获取当前访问地址以及一些参数