股墓山庄

专注于AS3,JavaScript 每天一点进步,坚持...
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

JS取地址欄中的值

Posted on 2012-08-09 10:02  股墓山庄庄主  阅读(1731)  评论(0编辑  收藏  举报

js获取地址栏参数的方法<html参数的读取>

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; 
}

var myurl=GetQueryString("myid");


//获取地址栏中变量为myid的数据,

  

 

 

有些时候我们要用javascript来获取传过来的参数以进行处理,如果我们要用服务器语言的话,那当然是非常简单了,一句话,就可以解决,但是在javascript里好像没有提供这样的方法和函数,那我们怎么样才可以通过js来获取地址栏的参数呢?

    我们的方法是把地址整个拿下来,然后去截取我们想要的部分,例如问号后面到第一个等号就是我们的参数名,或&符号后面到等号

之间都是参数名,等号后面就是参数值。以往的方法就是用一个循环去判断然后把参数名和参数值都给取出来,今天在这里介绍一种可以

用正则表达式提取的又方便又实用的方法:

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"));

当然如果你没有传参数的话,强行输出调用结果有的时候会报错,下面举一个例子:

abc.html?url=http://hi.baidu.com

这样的地址,如果你用上面的方法去调用alert(GetQueryString("url")); 
则会弹出一个窗口:内容就是 hi.baidu.com

如果你的地址是:abc.html 后面没有传值的话,那么直接用alert(GetQueryString("url")); 这样的方法就会报错

所以我们要加一个判断 ,首先把值赋给一个变量

var myurl=GetQueryString("url");

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