让你的ASP控制Frame
我以前说过使用response.redirect是不能够跳到另外一个Frame的把,呵呵,那么我们怎么来使用ASP来控制frame呢?
下面将提供一个方法来解决这个问题。
事实上,一共有两种方法控制ASP生成的HTML显示在哪一个Frame中。
简单的是设置HTML的Form元素的基本标志即可。这个方法可以解决大多数简单情况下的页面定位问题。
这个方法大家应该都见过,我就不详细说明了。
但是问题是当出现一些复杂的情况时,我们怎么来控制redirect的跳转呢?
下面将给出一个例子程序(其实是个很有用的例子程序)
它将动态生成Frame并且可以在你的网站上增加4个搜索引擎(如果你确实
想把这段代码加入到你的网站上的话,呵呵)
用FP随便写一个HTML页面,文件名为frsearch.htm分为两个Frame
左边的Frame里面有一个用来输入查询条件的文本框(name为searchTopic),
再外加4个checkbox(表示4个查询站点
内容分别是:这四个单选框的name分别为AltaVista,mskb, news, AVDF,4个的value都为ON) ,
其中还专门给mskb(MS Knowledge Base)做一个下拉框,用来选择topic用的,
name是SearchArea),还有两个单选框,name都是viewtype,最后是一个提交按钮。
然后在你的页面中加入下面两句话。
<base target="_top">
<form action="doSearch.asp">
文件名为doSearch.asp
<%
searchTopic = request.form ("SearchTopic")
searchTopic = server.urlencode(searchTopic)
'只给微软的KB用的
searchArea = request.form ("SearchArea")
'frame的显示形式
viewtype = request.form("viewtype")
'你要显示的frame数目
frcount = 0
if request.form("AltaVista") = "ON" then
AVurl = "http://www.altavista.yellowpages.com.au/cgi-bin/telstra?pg=q&what=web&fmt=.&q=" & SearchTopic
frcount = 1
end if
if request.form("mskb") = "ON" then
MSurl = "http://search.microsoft.com/searchbin/kb/mts_search.idq?Hdr=@KBArea&Scope=/kb/articles/&Tmplt=mts_search&SWR=F&Sort=rank[d]&Purl=/kb&Pfx=kb&Base=kb&sl=NULL&KBD=" & SearchArea & "&maxp=25&maxr=100&Sz=" & SearchTopic
frcount = frcount + 1
end if
if request.form("AVDF") = "ON" then
AVDFurl = "http://www.gui.com.au/gcgi/glance?tp=search.gl&query=" & SearchTopic & "&case=on&whole=on&area=All+Issues&errors=0+%28Exact+match%29&maxfiles=10&maxlines=10"
frcount = frcount + 1
end if
if request.form("news") = "ON" then
NEWSurl = "http://www.gui.com.au/gcgi/news_search?query=" & SearchTopic &"&maxresults=50&rtype=1"
frcount = frcount + 1
end if
if viewtype = "frame" then
'动态生成frame
splitpct = fix(100/frcount)
pcts = Cstr(splitpct)
if frcount = 1 then
pctstr = pcts & "%"
end if
if frcount > 1 then
pctstr = pctstr & "," & pcts & "%"
end if
if frcount > 2 then
pctstr = pctstr & "," & pcts & "%"
end if
if frcount = 4 then
pctstr = pctstr & "," & pcts & "%"
end if
end if
%>
<Script language="JavaScript" for="window" event="onLoad()">
<!--
<%if AVurl <> "" then %>
window.open ("<%=AVurl %>")
<% end if %>
<%if AVDFurl <> "" then %>
window.open ("<%=AVDFurl %>")
<% end if %>
<%if NEWSurl <> "" then %>
window.open ("<%=NEWSurl %>")
<% end if %>
<%if MSurl <> "" then %>
window.open ("<%=MSurl%>")
<% end if %>
Window.location.href = "frsearch.htm"
-->
</Script>
<html>
<head>
<title>4个搜索引擎</title>
</head>
<%if viewtype = "frame" then %>
<frameset cols="20%,80%">
<frame src="searchside.htm">
<frameset rows="<%=pctstr%>">
<%if AVurl <> "" then %>
<frame src="<%=AVurl%>" name="AltaVista">
<% end if %>
<%if AVDFurl <> "" then %>
<frame src="<%=AVDFurl%>" name="AVDF">
<% end if %>
<%if NEWSurl <> "" then %>
<frame src="<%=NEWSurl%>" name ="news">
<% end if %>
<%if MSurl <> "" then %>
<frame src="<%=MSurl%>" name = "mskb">
<% end if %>
</frameset>
<noframes>
<body>
<p>This web page uses frames, but your browser doesn't support them.</p>
</body>
</noframes>
</frameset>
……