日期:2012-12-12  浏览次数:21136 次

                  让你的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 t