精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● ASP>>VBScript & JavaScript>>用Javascript取得get方法传送变量值的小代码

主题:用Javascript取得get方法传送变量值的小代码
发信人: nonepassby(左右無人)
整理人: qcrsoft(2002-05-21 23:14:46), 站内信件
 <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>  


----
網易之左右無人给我留言

为了与更多的朋友交流,我已申请脚本技术版版卒         

[关闭][返回]