|
用Javascript取得get方法传送变量值的小代码 ~ admin
<script language=javascript>
//各位是不是在asp文件中用惯了request("varname")来得到get送来的值呢, //可惜在客户端要取得好象很麻烦,今天又有个网友在上面发表了这方面的问题, //因此,我编了一个小函数,来可以仿照asp的request("varname")的形式来取得传送过来的值 //而且在htm文件中也可以使用:),把它放在你的脚本库中,以后就不用为这个发愁了 //注意:只在IE中测试通过,netscape没试过 //用法:假设地址栏是:http://localhost/test.htm?stra=bbcc&intb=56,则这样调用: //var a=request("stra");var b=request("intb") //当然你还可以用c=request("abc"),看看是什么结果^^ //刚刚又修改了一个大BUG,现在增加了一个getoffset函数,用来得到正确的起始位置 //本代码还有一个功能没有实现,即有同名变量只取第一个,没有用数组接收 //有兴趣的朋友可以自己完成它,我以后也会编编看^^ //getoffset用来求得有效起始值 function getoffset(strsearch,substr,offset){ var sublen=substr.length; //从offset位置开始查找子串在搜索字符串中的位置 var reval=strsearch.indexOf(substr,offset) if (reval==-1) return reval;//没找到,返回-1 //新起始值为子串后第二个字符的位置,因为位置是从0开始的 reval=reval+sublen+1; //看子串后的一个字符是不是=号,如果是,表示得到的起始值有效 if (strsearch.charAt(reval-1)=="=") return reval; //如果不是,继续查找起始位置 return getoffset(strsearch,substr,reval); } //取得get变量值 function request(getvar){ //定义过程变量 var strRequest,offset,endpoint,returnvar //注意&的妙用 strRequest=window.location.search; strRequest="&"+strRequest.substring(1,strRequest.length); //如果变量中含有=或&号,及早打发 if (getvar.search("=|&")!=-1)return ""; getvar="&"+getvar; //求得起始点 offset=getoffset(strRequest,getvar,0); if (offset==-1) return ""; //求得结束点 endpoint=strRequest.indexOf("&",offset); if (endpoint==-1)endpoint=strRequest.length; //求得变量的返回值 returnvar=strRequest.substring(offset,endpoint); return returnvar; } </script> |