Webbrowser控件史上最强技巧全集解析.docx
- 文档编号:4322165
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:13
- 大小:22.03KB
Webbrowser控件史上最强技巧全集解析.docx
《Webbrowser控件史上最强技巧全集解析.docx》由会员分享,可在线阅读,更多相关《Webbrowser控件史上最强技巧全集解析.docx(13页珍藏版)》请在冰豆网上搜索。
Webbrowser控件史上最强技巧全集解析
Webbrowser控件史上最强技巧全集
VB调用webbrowser技巧集
1、获得浏览器信息:
PrivateSubCommand1_Click()
WebBrowser1.Navigate""
EndSub
PrivateSubCommand2_Click()
DimoWindow
DimoNav
SetoWindow=WebBrowser1.Document.parentWindow
SetoNav=oWindow.navigator
Debug.PrintoNav.userAgent
SetoWindow=Nothing
SetoNav=Nothing
EndSub
点击Command1浏览网页,点击Command2在立即窗口中输出浏览器信息。
2、弹出Webbrowser消息窗口
DimoWindow
SetoWindow=WebBrowser1.Document.parentWindow
oWindow.confirm"abcd"
VB调用webbrowser技巧集2
向Webbrowser中写入HTML内容的几种方法
首先在Form_Load中加入
WebBrowser1.Navigate"about:
blank"
确保Webbrowser1可用
方法1:
DimsAsString
DimstreamAsIStream
s=""
s=s+""
s=s+""
s=s+"
helloworld
"
s=s+""
s=s+"
WebBrowser1.Document.Writes
方法2:
Dimo
Seto=WebBrowser1.Document.selection.createrange
Debug.Printo
If(NotoIsNothing)Then
o.pasteHTML"哈哈"
Seto=Nothing
EndIf
方法3:
'插入文本框
Dimo
Seto=WebBrowser1.Document.selection.createrange
o.execCommand"InsertTextArea",False,"xxx"
vb调用Webbrowser技巧集3
1、页面滚动:
PrivateSubCommand2_Click()
WebBrowser1.Document.parentwindow.scrollby0,30
EndSub
PrivateSubForm_Load()
WebBrowser1.Navigate""
EndSub
点击Command2就可以使当前页面向下滚动30像素
2、判断页面是否可以前进后退
PrivateSubCommand1_Click()
WebBrowser1.GoForward
EndSub
PrivateSubCommand2_Click()
WebBrowser1.GoBack
EndSub
PrivateSubForm_Load()
WebBrowser1.Navigate""
EndSub
PrivateSubWebBrowser1_CommandStateChange(ByValCommandAsLong,ByValEnableAsBoolean)
If(Command=CSC_NAVIGATEBACK)Then
Command2.Enabled=Enable
EndIf
If(Command=CSC_NAVIGATEFORWARD)Then
Command1.Enabled=Enable
EndIf
EndSub
VB调用webbrowser技巧集4
1、如何使网页不出现滚动条:
PrivateSubmnuScroll1_Click()
@#注意:
必须在网页完全显示之后才可以运行
WebBrowser1.Document.body.Scroll="no"@#不显示滚动条的办法
EndSub
PrivateSubmnuScroll2_Click()
@#注意:
必须在网页完全显示之后才可以运行
WebBrowser1.Document.body.Scroll="Auto"@#显示滚动条的办法
EndSub
2、如何获得网页中被选中部分的HTML:
PrivateSubCommand1_Click()
DimobjSelection
DimobjTxtRange
SetobjSelection=WebBrowser1.Document.selection
IfNot(objSelectionIsNothing)Then
SetobjTxtRange=objSelection.createRange
IfNot(objTxtRangeIsNothing)Then
Debug.PrintobjTxtRange.htmlText
SetobjTxtRange=Nothing
EndIf
SetobjSelection=Nothing
EndIf
EndSub
PrivateSubForm_Load()
WebBrowser1.Navigate""
EndSub
Navigate方法的语法格式为:
WebBrowser控件名.NavigateURL
[Flags,][TargetFrameName,][PostData,][Headers]
----WebBrowser控件支持的主要方法有:
GoBack———回退到上一屏。
GoForward———进入到下一屏。
GoHome———回家。
即回到主页。
Stop———停止导航。
Refresh———刷新。
Navigate———导航。
----WebBrowser控件所响应的事件:
----BeforeNavigate事件———在开始导航前发生。
一般在此获取完整的URL字符串。
----WebBrowser控件最主要的参数:
----URL———获得导航用的标准URL字符串。
例如:
它能将”www.MicroSoft.Com”自动翻译为”http:
//www.MicroSoft.Com”.URL是UniformResourceLocator的缩写,是在Internet的WWW服务程序上用于指定信息位置的表示方法。
使用WebBrowser的Navigator或者Navigator2方法打开一个asp文档并且传递
参数进去,但是asp文档无法获得参数,请教是什么原因?
vb源码:
PrivateSubcmdSubmit_Click()
DimstrURLAsString,strFormDataAsString
DimstrDataAsString
strURL=Trim$(txtURL.Text)
strFormData="name="&Trim$(txtName.Text)&
"&password="&Trim$(txtPassword.Text)
CallWBTest.Navigate2(strURL,64,"_blank",strFormData,
"hello")
EndSub
asp源码:
<%@Language=VBScript%>
<%
dimstrName
dimstrPassword
strName=Trim(Request.Form("name"))
strPassword=Trim(Request.Form("password"))
Response.Write(strName)
Response.Write(strPassword)
ifstrName="KingZhang"andstrPassword="123456"then
Response.Write("登陆成功")
else
Response.Write("非法登陆用户!
")
endif
%>
*********************************************************************
OptionExplicit
PrivateSubCommand1_Click()
DimszValueAsString
WebBrowser1.Document.body.innerHTML="
窗体顶端
method=postaction=http:
//地址/xxx.php>
窗体底端
"
WebBrowser1.Document.Forms("post").submit
EndSub
PrivateSubForm_Load()
WebBrowser1.Navigate2"about:
blank"
EndSub
Top
********************************************************************
请问:
在WebBrwoser控件里提供的Navigate或者Navigate2方法中提供了传递数据
的参数,调用方式为:
WebBrowser1.Navigate2(URL,[Flags],
[TargetFrameName],[PostData],[Headers])
其中PostData参数就是一个提交参数字符串,例如"name=aaa&password=123",
但问题是为什么这个方法并不是有效的,服务器端不能取得数据?
如果这个方法是有效的话就不需要用一段html代码模拟这种调用了。
下面代码能检测出程序post出去的消息
PrivateSubWebBrowser1_BeforeNavigate2(ByValpDispAsObject,URLAsVariant,FlagsAsVariant,TargetFrameNameAsVariant,PostDataAsVariant,HeadersAsVariant,CancelAsBoolean)
MsgBoxPostData
EndSub
WebBrowser的8个方法和13个属性
WebBrowser的8个方法和13个属性,以及它们的功能:
方法说明
GoBack相当于IE的“后退”按钮,使你在当前历史列表中后退一项
GoForward相当于IE的“前进”按钮,使你在当前历史列表中前进一项
GoHome相当于IE的“主页”按钮,连接用户默认的主页
GoSearch相当于IE的“搜索”按钮,连接用户默认的搜索页面
Navigate连接到指定的URL
Refresh刷新当前页面
Refresh2同上,只是可以指定刷新级别,所指定的刷新级别的值来自RefreshConstants枚举表,
该表定义在ExDisp.h中,可以指定的不同值如下:
REFRESH_NORMAL执行简单的刷新,不将HTTPpragma:
no-cache头发送给服务器
REFRESH_IFEXPIRED只有在网页过期后才进行简单的刷新
REFRESH_CONTINUE仅作内部使用。
在MSDN里写着DONOTUSE!
请勿使用
REFRESH_COMPLETELY将包含pragma:
no-cache头的请求发送到服务器
Stop相当于IE的“停止”按钮,停止当前页面及其内容的载入
属性说明
Application如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch)。
如果在宿主对象中自动化对象无效,这个程序将返回WebBrowser
控件的自动化对象
Parent返回WebBrowser控件的父自动化对象,通常是一个容器,例如是宿主或IE窗口
Container返回WebBrowser控件容器的自动化对象。
通常该值与Parent属性返回的值相同
Document为活动的文档返回自动化对象。
如果HTML当前正被显示在WebBrowser中,则
Document属性提供对DHTMLObjectModel的访问途径
TopLevelContainer返回一个Boolean值,表明IE是否是WebBrowser控件顶层容器,是就返回true
Type返回已被WebBrowser控件加载的对象的类型。
例如:
如果加载.doc文件,就会返
回MicrosoftWordDocument
Left返回或设置WebBrowser控件窗口的内部左边与容器窗口左边的距离
Top返回或设置WebBrowser控件窗口的内部左边与容器窗口顶边的距离
Width返回或设置WebBrowser窗口的宽度,以像素为单位
Height返回或设置WebBrowser窗口的高度,以像素为单位
LocationName返回一个字符串,该字符串包含着WebBrowser当前显示的资源的名称,如果资源
是网页就是网页的标题;如果是文件或文件夹,就是文件或文件夹的名称
LocationURL返回WebBrowser当前正在显示的资源的URL
Busy返回一个Boolean值,说明WebBrowser当前是否正在加载URL,如果返回true
就可以使用stop方法来撤销正在执行的访问操作
如何利用WebBrowser控件,显示.GIF动画?
要有一定的网页知识(HTML、JavaScript、CSS)
注意细节:
没有"滚动条"和"鼠标右键弹出的IE上下文菜单",".HTM源文件"...
我写了一个,效果还真不错!
'Objects:
Form1、Command1、CommonDialog1、WebBrowser1
OptionExplicit
PrivateSubCommand1_Click()
CommonDialog1.ShowOpen
IfVBA.Len(VBA.Trim(CommonDialog1.FileName))>0Then
DimpAsstdole.StdPicture
DimsPathAsString
sPath=VBA.Trim(VBA.Trim(CommonDialog1.FileName))
Setp=VB.LoadPicture(sPath)
WebBrowser1.Width=p.Width*16/26
WebBrowser1.Height=p.Height*16/26
'WebBrowser1.Navigate"about:
blank"
WebBrowser1.Document.open
WebBrowser1.Document.writeln""
WebBrowser1.Document.writeln""
WebBrowser1.Document.writeln""
WebBrowser1.Document.writeln""
WebBrowser1.Document.writeln"WebBrowser1.Document.writeln"
WebBrowser1.Document.writeln"WebBrowser1.Document.writeln"
"
WebBrowser1.Document.writeln""
WebBrowser1.Document.writeln""
EndIf
EndSub
PrivateSubForm_Load()
Command1.Caption="&Open"
WebBrowser1.Navigate"about:
blank"
WebBrowser1.Document.open
WebBrowser1.Document.writeln""
WebBrowser1.Document.writeln""
WebBrowser1.Document.writeln""
WebBrowser1.Document.writeln""
WebBrowser1.Document.writeln"WebBrowser1.Document.writeln""
WebBrowser1.Document.writeln""
WebBrowser1.Document.Close
EndSub
WebBrowser控件说明
方法说明
GoBack相当于IE的“后退”按钮,使你在当前历史列表中后退一项
GoForward相当于IE的“前进”按钮,使你在当前历史列表中前进一项
GoHome相当于IE的“主页”按钮,连接用户默认的主页
GoSearch相当于IE的“搜索”按钮,连接用户默认的搜索页面
Navigate连接到指定的URL
Refresh刷新当前页面
Refresh2同上,只是可以指定刷新级别,所指定的刷新级别的值来自RefreshConstants枚举表,
该表定义在ExDisp.h中,可以指定的不同值如下:
REFRESH_NORMAL执行简单的刷新,不将HTTPpragma:
no-cache头发送给服务器
REFRESH_IFEXPIRED只有在网页过期后才进行简单的刷新
REFRESH_CONTINUE仅作内部使用。
在MSDN里写着DONOTUSE!
请勿使用
REFRESH_COMPLETELY将包含pragma:
no-cache头的请求发送到服务器
Stop相当于IE的“停止”按钮,停止当前页面及其内容的载入
属性说明
Application如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch)。
如果在宿主对象中自动化对象无效,这个程序将返回WebBrowser
控件的自动化对象
Parent返回WebBrowser控件的父自动化对象,通常是一个容器,例如是宿主或IE窗口
Container返回WebBrowser控件容器的自动化对象。
通常该值与Parent属性返回的值相同
Document为活动的文档返回自动化对象。
如果HTML当前正被显示在WebBrowser中,则
Document属性提供对DHTMLObjectModel的访问途径
TopLevelContainer返回一个Boolean值,表明IE是否是WebBrowser控件顶层容器,是就返回true
Type返回已被WebBrowser控件加载的对象的类型。
例如:
如果加载.doc文件,就会返
回MicrosoftWordDocument
Left返回或设置WebBrowser控件窗口的内部左边与容器窗口左边的距离
Top返回或设置WebBrowser控件窗口的内部左边与容器窗口顶边的距离
Width返回或设置WebBrowser窗口的宽度,以像素为单位
Height返回或设置WebBrowser窗口的高度,以像素为单位
LocationName返回一个字符串,该字符串包含着WebBrowser当前显示的资源的名称,如果资源
是网页就是网页的标题;如果是文件或文件夹,就是文件或文件夹的名称
LocationURL返回WebBrowser当前正在显示的资源的URL
Busy返回一个Boolean值,说明WebBrowser当前是否正在加载URL,如果返回true
就可以使用stop方法来撤销正在执行的访问操作
WebBrowser的事件
PrivateEventsDescription
BeforeNavigate2导航发生前激发,刷新时不激发
CommandStateChange当命令的激活状态改变时激发。
它表明何时激活或关闭Back和Forward
菜单项或按钮
DocumentComplete当整个文档完成是激发,刷新页面不激发
DownloadBegin当某项下载操作已经开始后激发,刷新也可激发此事件
DownloadComplete当某项下载操作已经完成后激发,刷新也可激发此事件
NavigateComplete2导航完成后激发,刷新时不激发
NewWindow2在创建新窗口以前激发
OnFullScreen当FullScreen属性改变时激发。
该事件采用VARIENT_BOOL的一个输
入参数来指示IE是全屏显示方式(VARIENT_TRUE)还是普通显示方式(VARIENT_FALSE)
OnMenuBar改变MenuBar的属性时激发,标示参数是VARIENT_BOOL类型的。
VARIANT_TRUE是可见,VARIANT_FALSE是隐藏
OnQuit无论是用户关闭浏览器还是开发者调用Quit方法,当IE退出时就会激发
OnStatusBar与OnMenuBar调用方法相同,标示状态栏是否可见。
OnToolBar调用方法同上,标示工具栏是否可见。
OnVisible控制窗口的可见或隐藏,也使用一个VARIENT_BOOL类型的参数
StatusTextChange如果要改变状态栏中的文字,这个事件就会被激发,但它并不理会程序是否有状态栏
TitleChangeTitle有效或改变时激发
WEBBROWSER技巧(收藏)
看到很多关于WebBrowser控件禁止右键的提问,回复的方法很多,其中有提到使用微软提供的Webbrowser扩展COM服务器对象(WBCustomizer.dll),但是该方法在我们想使用Webbrowser编辑网页(Webbrowser1.Document.execCommandeditMode)的时候有很多弊端,比如不能显示选中的文本等。
另有些方法也就不用一一列举了。
这儿我想提到的是关于MSHTML.HTMLDocument
引用MicrosoftHTMLOBjectLibrary
Rem#窗体代码#
DimW
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Webbrowser 控件 最强 技巧 全集 解析