动态更改框架页面






4.33/5 (6投票s)
2003年12月1日
4分钟阅读

110118

2744
动态更改框架页面
引言
这段代码主要面向使用框架和ASP页面的初学者和中级程序员。通常,HTML页面在框架中只调用一次。这将为您的网站提供静态输出。当网页被分成两个以上的框架,并且您想在框架中动态更新您的网页,并且同时在两个或多个框架中更新时,这段代码将指导您如何操作。
它是什么
这段代码使用一个ASP页面,该页面被分成三个框架:顶部、左侧和主框架。问题是如何在用户请求时动态更改框架中的页面,以及如何同时在两个不同的框架中更改多个页面。
工作原理
这里有一个名为index.asp的主页面,它被分成三个框架页面。最初,顶部框架包含topbar.html,左侧框架包含leftbar1.htm,主框架包含main1.htm页面。在左侧栏上,用户有登录选项,当用户输入用户名和密码登录后,它将同时在左侧和主框架中获取两个不同的页面。在左侧框架中,它将获得新的个人页面(leftbar2.htm),在主页面中获得照片库页面(gallerytable.htm)。这时,顶部栏框架页面保持静态。在新页面上,用户将获得注销选项,点击后将同时重定向到相同的旧页面。这是这段代码最重要的部分,您可以同时动态更新不同框架中的两个或多个页面。
理解代码
这段代码背后的主要技巧是动态改变框架的src(源)和target属性以及链接。
首先,当用户向index.asp页面提交其请求时,它会将表单标签的target属性设置为“_top”,这将在调用和显示index.asp页面时,通过提交用户登录请求来覆盖整个窗口。
Leftbar1.htm
<form method="POST" action="index.asp" target="_top">
这里最重要的是将target属性设置为“_top”,否则整个index.asp页面将出现在“main”框架中,而不是在主浏览器窗口中。第二件事是,如果捕获了index.asp页面上的用户请求,并且它提供了正确的用户名和密码,则需要更新左侧和主框架中的页面。为此,我在index.asp页面中添加了以下ASP代码来设置条件。
Index.asp
<%@ language="vbscript" %>
<%
dim id, pass, mem
if request("mem")="NO" then
mem="NO"
else
mem="YES"
end if
id = request.form("T1")
pass = request.form("T2")
if id = "techneel" and pass="techneel" then
mem = "YES"
else
mem = "NO"
end if
%>
在这里,它将检查用户名和密码,如果正确,则将“mem”变量的值设置为“YES”。第二件事是,现在需要根据“mem”变量的值设置左侧框架和主框架的src(源)属性。
Index.asp
<frame name="left" target="contents" src=" <%
if mem="NO" then response.write("leftbar1.htm")
else response.write("leftbar2.htm") end if %>">
<frame name="main" scrolling="no" noresize src=" <%
if mem="NO" then response.write("main1.htm")
else response.write("gallerytable.htm") end if %>" target="_top">
在这里,我使用vbscript的response.write
对象有条件地设置src属性值。当网页在浏览器中显示时,代码应该像这样
<frame name="left" target="contents" src="leftbar2.htm”>
<frame name="main" scrolling="no" noresize src="gellerytable.htm”>
现在,您将获得底部框架(左侧和主框架)以及新页面。左侧栏具有用户的个人链接页面,右侧主框架具有照片库页面。在这两个页面中,您将找到“LOGOUT”超链接。添加它只是为了展示如何使用超链接来更新框架页面。
Leftbar2.htm, gallerytable.htm
<a href="index.asp?mem=NO" target="_top">LOGOUT</a>
可以看到,当用户点击LOGOUT链接时,它将调用index.asp页面,并且还将传递查询字符串mem =“NO”,我们将在索引页面中捕获该字符串。并且我还将target属性设置为“_top”,因此它将在浏览器窗口中调用页面,而不是在特定框架中调用页面。为此,您可以仔细阅读上面所示的index.asp页面代码。
结论
这段代码将帮助您理解框架页面和ASP脚本,以便同时动态地处理多个框架页面。此代码未显示任何其他针对ASP登录或注销技巧或传递变量状态的严格规则。它只是为了演示如何动态地使用框架。如果您有任何建议或意见,请写下来,也包括关于这段代码的建议和意见。
感谢您。Nilesh Shah。