在网页中显示其它网页的内容
2009-06-15贾磊
贾 磊
显示其它网页内容的方法很多,比如现在比较火的ajax就能很好的实现。但是ajax不是每个人都会,尤其是新手不推荐一上手就向那么高的方向。这里介绍几种比较简单的显示其它网页的方法。
方法一:frameset
frameset称框架标记,用以宣告html文件为框架模式,并设定视窗如何分割。
框架便是网页画面分成几个框窗,同时取得多个 URL。只需要 < frameset > <frame> 即可,页面内所有框架标记需要放在一个总起的html 档,这个档案只记录了该框架如何分割 ,不会显示任何资料,所以不必放入 <body> 标记,浏览框架必须读取这个档案面而不是其他框架窗的档案。<frameset> 是用来划分框窗,每一窗框由一个 <frame> 标 记所标示,<frame>必须在 <frameset> 范围中使用。
方法二:iframe?标记。
这标记只适用於 IE(comet:也使用于FireFox)。 它的作用是在一页网页中间插入一个框窗以显示另一个文件。这个标记的用法同上面的大同小异。这里不错详细介绍。
例子: <iframe src="iframe.html" name="test"align="MIDDLE" width=
"300" height="100" marginwidth="1" marginheight="1" frameborder="1" scrolling="Yes"> </iframe>
方法三:
以上两种方法均只能从上到下,从左到右顺序显示网页的内容。但是如果只想显示目标网页的部分内容该怎么办呢?这里介绍另一种方法,直接读入网页,然后分析显示想要的部分。这个程序调用到了一个API函数XMLHTTP。XMLHTTP最初是由微软公司发明的,在Internet Explorer 5.0中用作ActiveX对象,可被JavaScript、JScript、VBScript以及其它web浏览器内嵌的脚本语言调用,通过HTTP在浏览器和web服务器之间收发XML或其它数据。XMLHTTP具体的使用方法这里就不阐述了。
具体程序如下:
<%
function getHTTPPage(url) '调用XmlHTTP获得网页内容信息
on error resume next
dim http
set http=Server.createobject("Microsoft.XmlHTTP")
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytes2BSTR(Http.responseBody)
set http=nothing
if err.number<>0 then err.Clear
end function
Function bytes2BSTR(vIn)‘编码转换
dim strReturn
dim i,ThisCharCode,NextCharCode
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function
Function Newstring(wstr,strng) '查找指定字符在字串中的位置
Newstring=Instr(lcase(wstr),lcase(strng))
if Newstring<=0 then Newstring=Len(wstr)
End Function
txt=getHTTPPage("http://help.tianya.cn/about/about.htm") 目标网页的地址
start=Newstring(txt,"产品")
over=Newstring(txt,"版块")
txt=mid(aa,start,over-start) '标记开始和结束部分并截取,注释掉以上3句就显示目标网页的完整内容
Response.Write txt
%>◆