|
2#
楼主 |
发表于 2004-7-15 17:17:00
|
只看该作者
在企业内部网和本地网页上使用服务器过滤器
通过在URL中查找变量只有在网页位于网站时才有可能。如果你的站点配置在企业互联网上的一个文件服务器上,或者你想在本地工作,你就不能作为URL的一部分来支持服务器过滤器,你需要通过编程来建立服务器过滤器,并且在网页被装载时应用它。注意到同时服务器过滤器也是被做为URL的一部分,它是对用户可见的。如果你想隐藏你的服务器过滤器的细节,你需要通过编程来建立并且应用它。
有一点补充:如果应用于服务器过滤器的脚本在要被代替的界面上,脚本不会被执行,因为界面在它运行前将被关闭。解决方案是给你的导航框架加上过滤管理程序,因为框架总是在运行。当导航一个网页时,任何用来设置服务器过滤器的程序就被叫做过滤管理程序。
下面就是在导航框架中的管理服务器过滤器的例程:
<SCRIPT language=vbscript>
' _________________________________________________________
' Variables and Initialization
Dim numTrackedPages
Dim pages(20)
Dim filters(20)
numTrackedPages = 0
' _________________________________________________________
' Navigation and Filtering
' The following routines keep track of a server filter
' for any pages that have been visited. This allows the user to
' return to the page and have the previous server filter
' stay in effect.
Sub SaveFilterForPage(url, serverfilter)
For i = 0 to numTrackedPages - 1
If (pages(i) = Right(url, len(pages(i)))) Then
filters(i) = serverfilter
Exit Sub
End If
Next
pages(numTrackedPages) = url
filters(numTrackedPages) = serverfilter
numTrackedPages = numTrackedPages + 1
End Sub
Sub NavWithFilter(frame, url, serverfilter)
SaveFilterForPage url, serverfilter
frame.location.href = url
End Sub
Function SavedFilter(url)
For i = 0 to numTrackedPages - 1
If (pages(i) = Right(url, len(pages(i)))) Then
SavedFilter = filters(i)
Exit Function
End If
Next
SavedFilter = ""
End Function
</SCRIPT>
上面的代码可以跟踪了为 20个网页设置的服务器过滤器,但是不是设置服务器过滤器。为了实现这个功能,你不得不在每个网页的后面加入以下的描述:
<SCRIPT language=vbscript>
' This script is used in conjunction with NavWithFilter
' to set the server filter for the current page
' after a navigation.
If (window.location.protocol <> "accdp:") Then
<FONT face=Verdana> sf = parent.navFrame.Sa |
|