欢迎光临

木子屋

标题: 静态页面也玩参数

作者: dnawo

日期: 2006-12-27 09:01 AM

分类: 脚本语言

内容: 众所周知，通过地址可以给动态页面传递参数，例如http://www.mzwu.com/article.asp?id=516表示向article.asp页传递一个参数id，其值为516，article.asp可以通过其值进行相应的操作。
出于好奇想编写一个运行于静态页面的万年历，都是运行于客户端的脚本，就要求静态页面也可以接受参数，例如：http://www.mzwu.com/w.htm?iYear=2007&iMonth=1。可是客户端脚本并没有提供像ASP的Request对象Querystring一样的方法，那就只能自己写一个函数来实现了：
HTML代码
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并有值了

[Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]
这段脚本只适用于本万年历，这边只提供一个思路，有兴趣的朋友可以试着写写。下边是相关的另外几个子过程：
1.列出地址中所有参数：
HTML代码
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) & "&lt;br/>")
Next
End If
End Sub
'Call Request()

[Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]
2.取得参数值，类似于request.querystring("argname")
VBScript版:
HTML代码
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")即可得到参数值

[Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]
JavaScript版:
HTML代码
function Request(argname)
{
var url = document.location.href;
var arrStr = url.substring(url.indexOf("?")+1).split("&");
//return arrStr;
for(var i =0;i

[Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]

+ 查看当前日志评论 (1)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.848 ms

返回

标题: 静态页面也玩参数

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.848 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.879 ms

返回