URL地址栏传参与取参

Posted missme-lina

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了URL地址栏传参与取参相关的知识,希望对你有一定的参考价值。

URL地址(传参)

js写法:
//1.window.location.href
var a ="1018802,8"
var b ="1"
window.location.href="../EditPosts.aspx?postid="+a+"&update="+b;

//2.字符串模板,动态生成href属性
var c = ‘<a class=" " href="../EditPosts.aspx?postid=‘‘+a+‘‘)">查看地址</a>‘

URL地址(取参)

1.只使用split将字符串截取成数组
var url=window.location.href
var pars=url.split("?")[1].split("=")[1].split(",")[1];

//例如 https://i.cnblogs.com/EditPosts.aspx?postid=1018802,8&update=1
//执行到split("?")[1]  =>  "postid=1018802,8&update=1"
//执行到split("&")[1]  =>  "1018802,8&update"
//执行到split(",")  =>  ["1018802,8","update"]
//执行到split(",")[1]  =>  "1018802,8"

反复截取,有点繁琐哎~

2.字符串拆分法

window.location.href 或者 location.href 或者 window.location 获得地址栏中的所有内容

decodeURI()可以解码地址栏中的数据 恢复中文数据

window.search 获得地址栏中问号及问号之后的数据

//获取地址栏里(URL)传递的参数  
function GetRequest(value) {  
    //url例子:www.bicycle.com?id="123456"&Name="bicycle";  
    var url = decodeURI(location.search); //?id="123456"&Name="bicycle";
    var object = {};
    if(url.indexOf("?") != -1)//url中存在问号,也就说有参数。  
    {   
      var str = url.substr(1);  //得到?后面的字符串
      var strs = str.split("&");  //将得到的参数分隔成数组[id="123456",Name="bicycle"];
      for(var i = 0; i < strs.length; i ++)  
        {   
        object[strs[i].split("=")[0]]=strs[i].split("=")[1]
      }
  }
    return object[value];  
}  
3.正则匹配法

这种方法其实原理和上一种方法类似,都是从URL中提取,只是提取的方法不同而已。

function GetQueryString(name) {  
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");  
    var r = window.location.search.substr(1).match(reg);  
    if (r != null) {   
        return unescape(r[2]);  
    }  
    return null;  
} 
4.在vue中可以通过this.$route获取路由对象然后根据具体需要取对象内容
this.$route.path 当前页面路由
this.$route.params 路由参数
this.$route.query 查询路由参数

以上是关于URL地址栏传参与取参的主要内容,如果未能解决你的问题,请参考以下文章

AES地址栏传参加密

layer.open Iframe弹窗 除了地址栏传参,怎么给子页面传递参数

两个页面地址栏传值

C#-WebForm-SessionCookie-登录验证(未登录跳至登录界面)隐藏地址栏传值

根据图片的url地址下载图片到本地保存代码片段

Repeater地址栏传值Response--12月30日