问WebBrowserControl控件中
![](/icons/45581de.gif)
作者: 评价: 上站日期: 2002-05-22
内容介绍说明:
来源:
--------------------------------------------------------------------------------
html
webbrowser.OleObject.document.documentelement.innerhtml;
Text
webbrowser.OleObject.document.documentelement.innerText;
********************
为了实现在自己
![](/icons/45581de.gif)
![](/icons/45581chengxu.gif)
![](/icons/45581dou.gif)
![](/icons/45581yi.gif)
![](/icons/45581de.gif)
![](/icons/45581yi.gif)
![](/icons/45581dou2.gif)
这个Control控件使用和IE相同
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
![](/icons/45581dou.gif)
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
示HTML文档
![](/icons/45581de.gif)
![](/icons/45581dou2.gif)
但是在实际编程过程中
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
![](/icons/45581dou.gif)
用THTMLControl控件那样直接读写HTML源码
![](/icons/45581dou2.gif)
![](/icons/45581chengxu.gif)
![](/icons/45581yi.gif)
![](/icons/45581dou.gif)
![](/icons/45581yi.gif)
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
件名传递给WebBrowserControl控件
![](/icons/45581dou.gif)
![](/icons/45581dou2.gif)
![](/icons/45581yi.gif)
![](/icons/45581chengxu.gif)
![](/icons/45581dou.gif)
![](/icons/45581yi.gif)
![](/icons/45581dou2.gif)
---- 在考察了
![](/icons/45581yi.gif)
![](/icons/45581de.gif)
![](/icons/45581chengxu.gif)
![](/icons/45581dou.gif)
![](/icons/45581chengxu.gif)
![](/icons/45581dou.gif)
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
![](/icons/45581de.gif)
思路方法;但
![](/icons/45581yi.gif)
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
![](/icons/45581yinwei.gif)
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
过Foxmail
![](/icons/45581dou2.gif)
---- 为此
![](/icons/45581dou.gif)
![](/icons/45581yi.gif)
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
![](/icons/45581de.gif)
![](/icons/45581de.gif)
![](/icons/45581dou2.gif)
鹤BBS(bbs.whnet.edu.cn)上
![](/icons/45581de.gif)
![](/icons/45581dou2.gif)
---- 其实
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
![](/icons/45581yi.gif)
![](/icons/45581dou.gif)
![](/icons/45581dou.gif)
码
![](/icons/45581de.gif)
![](/icons/45581dou2.gif)
---- 以下是IPersistStreamInit接口
![](/icons/45581de.gif)
{ IPersistStream
![](/icons/45581int.gif)
{$EXTERNALSYM IPersistStream}
IPersistStream =
![](/icons/45581int.gif)
[´{00000109-0000-0000-C000-000000000046}´]
function IsDirty: HResult; stdcall;
// 最后
![](/icons/45581yi.gif)
function Load(const stm: IStream): HResult; stdcall;
// 从流中载入
function Save(const stm: IStream;
fClearDirty: BOOL): HResult; stdcall;
// 保存到流
function GetSizeMax(out cbSize: Large
![](/icons/45581int.gif)
HResult; stdcall; // 取得保存所需空间大小
end;
{ IPersistStreamInit
![](/icons/45581int.gif)
{$EXTERNALSYM IPersistStreamInit}
IPersistStreamInit =
![](/icons/45581int.gif)
[´{7FD52380-4E07-101B-AE2D-08002B2EC713}´]
function InitNew: HResult; stdcall; //
![](/icons/45581chushi.gif)
end;
首先来实现写
![](/icons/45581dou.gif)
![](/icons/45581yinwei.gif)
![](/icons/45581de.gif)
procedure SetHtml(const WebBrowser:
TWebBrowser; const Html:
![](/icons/45581string.gif)
var
Stream: IStream;
hHTMLText: HGLOBAL;
psi: IPersistStreamInit;
begin
![](/icons/45581if.gif)
hHTMLText := GlobalAlloc(GPTR, Length(Html) + 1);
![](/icons/45581if.gif)
CopyMemory(Po
![](/icons/45581int.gif)
PChar(Html), Length(Html));
OleCheck(CreateStreamOnHGlobal
(hHTMLText, True, Stream));
try
OleCheck(WebBrowser.Document.
QueryInterface(IPersistStreamInit, psi));
try
OleCheck(psi.InitNew);
OleCheck(psi.Load(Stream));
finally
psi := nil;
end;
finally
Stream := nil;
end;
end;
---- 首先
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
有效
![](/icons/45581dou.gif)
![](/icons/45581yi.gif)
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
![](/icons/45581dou2.gif)
![](/icons/45581yinwei.gif)
![](/icons/45581yi.gif)
![](/icons/45581yi.gif)
读取
![](/icons/45581de.gif)
![](/icons/45581dou2.gif)
![](/icons/45581hanshu.gif)
![](/icons/45581de.gif)
![](/icons/45581yi.gif)
![](/icons/45581de.gif)
![](/icons/45581chushi.gif)
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
![](/icons/45581dou.gif)
RaiseLastWin32Error
![](/icons/45581hanshu.gif)
![](/icons/45581yi.gif)
![](/icons/45581dou.gif)
HGlobal
![](/icons/45581hanshu.gif)
![](/icons/45581yi.gif)
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
![](/icons/45581dou2.gif)
立
![](/icons/45581de.gif)
![](/icons/45581yi.gif)
![](/icons/45581dou2.gif)
![](/icons/45581hanshu.gif)
![](/icons/45581yi.gif)
![](/icons/45581dou2.gif)
就可以直接使用此接口
![](/icons/45581dou.gif)
![](/icons/45581chushi.gif)
![](/icons/45581dou2.gif)
---- 至此
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
![](/icons/45581de.gif)
![](/icons/45581dou2.gif)
---- 值得注意
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
![](/icons/45581hanshu.gif)
![](/icons/45581diaoyong.gif)
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
![](/icons/45581hanshu.gif)
![](/icons/45581dou.gif)
![](/icons/45581dou.gif)
![](/icons/45581yinwei.gif)
![](/icons/45581yi.gif)
态
![](/icons/45581de.gif)
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
![](/icons/45581dou.gif)
![](/icons/45581yi.gif)
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
![](/icons/45581dou.gif)
释放只需将接口设为nil即可
![](/icons/45581dou2.gif)
---- 接着来实现HTML源码
![](/icons/45581de.gif)
function GetHtml(const WebBrowser: TWebBrowser):
![](/icons/45581string.gif)
const
BufSize = $10000;
var
Size: Int64;
Stream: IStream;
hHTMLText: HGLOBAL;
psi: IPersistStreamInit;
begin
![](/icons/45581if.gif)
OleCheck(WebBrowser.Document.QueryInterface (IPersistStreamInit, psi));
try
//OleCheck(psi.GetSizeMax(Size));
hHTMLText := GlobalAlloc(GPTR, BufSize);
![](/icons/45581if.gif)
OleCheck(CreateStreamOnHGlobal(hHTMLText, True, Stream));
try
OleCheck(psi.Save(Stream, False));
Size := StrLen(PChar(hHTMLText));
SetLength(Result, Size);
CopyMemory(PChar(Result), Po
![](/icons/45581int.gif)
finally
Stream := nil;
end;
finally
psi := nil;
end;
end;
---- 此
![](/icons/45581hanshu.gif)
![](/icons/45581yi.gif)
![](/icons/45581dou.gif)
![](/icons/45581yi.gif)
![](/icons/45581zifu.gif)
![](/icons/45581de.gif)
![](/icons/45581dou2.gif)
WebBrowser.Document对象是否有效
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
IPersistStreamInit接口
![](/icons/45581de.gif)
![](/icons/45581hanshu.gif)
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
![](/icons/45581hanshu.gif)
![](/icons/45581dou.gif)
![](/icons/45581dou2.gif)
![](/icons/45581yi.gif)
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
BufSize = $10000字节(注意此缓冲区应该足够大);然后同样地分配全局堆内存块
![](/icons/45581dou.gif)
![](/icons/45581dou.gif)
![](/icons/45581dou2.gif)
![](/icons/45581yinwei.gif)
中是以#0结尾
![](/icons/45581de.gif)
![](/icons/45581zifu.gif)
![](/icons/45581dou.gif)
![](/icons/45581dou.gif)
![](/icons/45581zifu.gif)
HTML源码实际长度
![](/icons/45581dou.gif)
![](/icons/45581zifu.gif)
![](/icons/45581zifu.gif)
![](/icons/45581dou2.gif)
---- 至此
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
![](/icons/45581de.gif)
![](/icons/45581hanshu.gif)
![](/icons/45581dou2.gif)
---- 不过需要注意
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
![](/icons/45581hanshu.gif)
![](/icons/45581dou.gif)
![](/icons/45581chushi.gif)
![](/icons/45581dou2.gif)
![](/icons/45581yi.gif)
![](/icons/45581hanshu.gif)
![](/icons/45581dou.gif)
![](/icons/45581yi.gif)
现WebBrowser.Document对象
![](/icons/45581chushi.gif)
![](/icons/45581dou2.gif)
procedure ShowBlankPage(WebBrowser: TWebBrowser);
var
URL: OleVariant;
begin
URL := ´about:blank´;
WebBrowser.Navigate2(URL);
end;
---- 建议在你有WebBrowserControl控件
![](/icons/45581de.gif)
![](/icons/45581de.gif)
件里
![](/icons/45581diaoyong.gif)
![](/icons/45581hanshu.gif)
![](/icons/45581dou.gif)
![](/icons/45581chushi.gif)
WebBrowser.Document对象
![](/icons/45581dou2.gif)
---- 本文
![](/icons/45581chengxu.gif)
WebBrowser类和WebBrowser_V1类
![](/icons/45581de.gif)
编号:QA002749
建立日期: 2000年3月20日 最后修改日期:2000年3月20日
所属类别:
Visual Basic - Web浏览器
xyjun:
操作系统: win98
编程工具: VB6.0
问题: 请问在vb对象浏览器中
![](/icons/45581de.gif)
![](/icons/45581de.gif)
![](/icons/45581dou2.gif)
我在窗体中插入了
![](/icons/45581yi.gif)
![](/icons/45581dou.gif)
![](/icons/45581new.gif)
![](/icons/45581dou.gif)
![](/icons/45581new.gif)
![](/icons/45581dou.gif)
![](/icons/45581new.gif)
![](/icons/45581de.gif)
网页在同
![](/icons/45581yi.gif)
![](/icons/45581new.gif)
![](/icons/45581new.gif)
![](/icons/45581de.gif)
回答:
WebBrowser_V1是IE3
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
![](/icons/45581dou2.gif)
如果你希望新打开
![](/icons/45581de.gif)
![](/icons/45581yi.gif)
![](/icons/45581dou.gif)
Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)
Set ppDisp = WebBrowser1.Object
End Sub
事件NewWindow2和
![](/icons/45581new.gif)
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
![](/icons/45581de.gif)
![](/icons/45581dou.gif)
![](/icons/45581dou2.gif)
NewWindow只有在用户选择“在新窗口打开链接”时才会激发
![](/icons/45581dou.gif)
![](/icons/45581dou.gif)
![](/icons/45581dou2.gif)
![](/icons/45581de.gif)
Dim WithEvents Web_V1 As SHDocVwCtl.WebBrowser_V1
Private Sub Form_Load
![](/icons/45581kh.gif)
Set Web_V1 = WebBrowser1.Object
WebBrowser1.Navigate2 \"\"
End Sub
Private Sub Web_V1_NewWindow(ByVal URL As String, _
ByVal Flags As Long, _
ByVal TargetFrameName As String, _
PostData As Variant, _
ByVal Headers As String, _
Processed As Boolean)
Processed = True
WebBrowser1.Navigate URL
End Sub
最新评论