首页 > 语言 > JavaScript > 正文

使用js获取地址栏参数的方法推荐(超级简单)

2024-05-06 14:56:12
字体:
来源:转载
供稿:网友

方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!)

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; }  // 调用方法 alert(GetQueryString("参数名1")); alert(GetQueryString("参数名2")); alert(GetQueryString("参数名3")); 

下面举一个例子:

若地址栏URL为:abc.html?id=123&url=//www.Vevb.com

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

则会弹出一个对话框:内容就是 //www.Vevb.com

如果用:alert(GetQueryString("id"));那么弹出的内容就是 123 啦;

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

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

var myurl=GetQueryString("url"); if(myurl !=null && myurl.toString().length>1) {   alert(GetQueryString("url")); } 

这样就不会报错了!

方法二:传统方法

<script type="text/javascript">function UrlSearch() {  var name,value;   var str=location.href; //取得整个地址栏  var num=str.indexOf("?")   str=str.substr(num+1); //取得所有参数  stringvar.substr(start [, length ]  var arr=str.split("&"); //各个参数放到数组里  for(var i=0;i < arr.length;i++){   num=arr[i].indexOf("=");   if(num>0){    name=arr[i].substring(0,num);   value=arr[i].substr(num+1);   this[name]=value;   }   } } var Request=new UrlSearch(); //实例化alert(Request.id);</script>

比如说把这个代码存为1.html

那么我要访问1.html?id=test

这个时候就取到test的值了

在html里调用

<script type="text/javascript">var a="http://baidu.com";</script></head><body><a id="a1" href="">sadfsdfas</a><script>var a1=document.getElementById("a1");a1.href=a;</script><script type="text/javascript"> var a="http://xxx.com/gg.htm?cctv"; var s=a.indexOf("?"); var t=a.substring(s+1);// t就是?后面的东西了 </script>

stringvar.substr(start [, length ]

返回一个从指定位置开始的指定长度的子字符串。

stringvar

必选项。要提取子字符串的字符串文字或 String 对象。

start

必选项。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。

length

可选项。在返回的子字符串中应包括的字符个数。

如果 length 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到 stringvar 的最后。

下面列举出一些相关的参数:

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选