用JS获取地址栏参数的方法
前端笔记 2018-01-12 10:50:38

 

先判断URL中有没有这个参数,如果有就替换,如果没有就加上:

JavaScript Code复制内容到剪贴板
  1. /** 
  2.  * 获取当前url的指定参数值 
  3.  * @param name 
  4.  * @returns {string|null} 
  5.  */  
  6. function getQueryString(name) {  
  7.     var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)""i");  
  8.     var r = window.location.search.substr(1).match(reg);  
  9.     if (r != nullreturn decodeURI(r[2]); return null;  
  10. }  
  11.   
  12. /** 
  13.  * 替换当前Url中指定参数值,如果没有就加上 
  14.  * @param base 
  15.  * @param find 
  16.  * @param value 
  17.  * @returns {string} 
  18.  */  
  19. function replaceQueryStringParam(base,find,value) {  
  20.     // let base = window.location.href;  
  21.     // console.log(base)  
  22.     // let offset = base.indexOf(find);  
  23.     let offset = base.indexOf(find+'=');  
  24.     let index;  
  25.     let rr = '';  
  26.     if(offset < 0){  
  27.         if(base.indexOf('?') < 0) {  
  28.             base += '?';  
  29.         }else{  
  30.             base += '&';  
  31.         }  
  32.         base += find + '=' + value;  
  33.     }else{  
  34.         left = base.substr(0, offset);  
  35.         right = base.substr(offset);  
  36.         index = right.indexOf('&');  
  37.         if(index >= 0){  
  38.             rr = right.substr(index);  
  39.         }  
  40.         base = left + find + "=" + value + rr;  
  41.     }  
  42.     return base;  
  43. }  

 

 

 

JavaScript Code复制内容到剪贴板
  1. function GetQueryString(name)  
  2. {  
  3.      var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");  
  4.      var r = window.location.search.substr(1).match(reg);  
  5.      if(r!=null)return  unescape(r[2]); return null;  
  6. }  
  7.    
  8. // 调用方法  
  9. alert(GetQueryString("参数名1"));  
  10. alert(GetQueryString("参数名2"));  
  11. alert(GetQueryString("参数名3"));  

 

例:

若地址栏URL为:abc.html?id=123&url=http://www.yoyo88.cn

那么,但你用上面的方法去调用:alert(GetQueryString("url"));

则会弹出一个对话框:内容就是 http://www.yoyo88.cn

 

当然如果你没有传参数的话,比如你的地址是 abc.html 后面没有参数,那强行输出调用结果有的时候会报错:

所以我们要加一个判断 ,判断我们请求的参数是否为空,首先把值赋给一个变量:

JavaScript Code复制内容到剪贴板
  1. var myurl=GetQueryString("url");  
  2. if(myurl !=null && myurl.toString().length>1)  
  3. {  
  4.    alert(GetQueryString("url"));  
  5. }  


 

本文来自于:http://www.yoyo88.cn/note/frontend/273.html

Powered by yoyo苏ICP备15045725号