出于好奇想编写一个运行于静态页面的万年历,都是运行于客户端的脚本,就要求静态页面也可以接受参数,例如:http://www.mzwu.com/w.htm?iYear=2007&iMonth=1。可是客户端脚本并没有提供像ASP的Request对象Querystring一样的方法,那就只能自己写一个函数来实现了
<script language="VBScript">
Dim iYear,iMonth
Sub getPar()
Dim temp,i,j,k,l
temp = document.location.href
if instr(temp,"?") = 0 then
iYear = year(date())
iMonth = month(date())
else
i = len(temp)
j = instr(temp,"=")
k = instr(temp,"&")
l = instrRev(temp,"=")
iYear = mid(temp,j+1,k-j-1)
iMonth = right(temp,i-l)
end if
End sub
'Call getPar()后iYear,iMonth并有值了
</script>这段脚本只适用于本万年历,这边只提供一个思路,有兴趣的朋友可以试着写写。下边是相关的另外几个子过程:
1.列出地址中所有参数:
<script language="VBScript">
Sub Request()
Dim url,arrStr,i
url = document.location.href
If instr(url,"?") = 0 then
Request = ""
Else
url = Right(url,Len(url)-Instr(url,"?"))
arrStr = split(url,"&")
For i=0 to UBound(arrStr)
document.write("第" & i+1 & "个参数:" & split(arrStr(i),"=")(0) & "=" & split(arrStr(i),"=")(1) & "<br/>")
Next
End If
End Sub
'Call Request()
</script>2.取得参数值,类似于request.querystring("argname")
VBScript版:
<script language="VBScript">
Function Request(argname)
Dim url,arrStr,i
url = document.location.href
If instr(url,argname & "=") = 0 then
Request = ""
Else
url = Right(url,Len(url)-Instr(url,"?"))
arrStr = split(url,"&")
For i=0 to UBound(arrStr)
If Instr(arrStr(i),argname & "=")>0 Then
Request = Replace(arrStr(i),argname & "=","")
End If
Next
End If
End Function
'使用Request("argname")即可得到参数值
</script>JavaScript版:
<script language="JavaScript">
function Request(argname)
{
var url = document.location.href;
var arrStr = url.substring(url.indexOf("?")+1).split("&");
//return arrStr;
for(var i =0;i<arrStr.length;i++)
{
var loc = arrStr[i].indexOf(argname+"=");
if(loc!=-1)
{
return arrStr[i].replace(argname+"=","").replace("?","");
break;
}
}
return "";
}
//使用Request("argname")即可得到参数值;
</script>
评论(0)
暂无评论。