webbrowser相关操作大全.docx
- 文档编号:10660630
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:22
- 大小:24.47KB
webbrowser相关操作大全.docx
《webbrowser相关操作大全.docx》由会员分享,可在线阅读,更多相关《webbrowser相关操作大全.docx(22页珍藏版)》请在冰豆网上搜索。
webbrowser相关操作大全
1、防止新窗口里头打开网页
代码1:
PrivateSubWebBrowser1_NewWindow2(ppDispAsObject,CancelAsBoolean)
DimfrmAsForm1
Setfrm=NewForm1
frm.Visible=True
SetppDisp=frm.WebBrowser1.object
EndSub
代码2:
有这段代码,有许多网页会出错,经常提示脚本错误,可以用silent属性为True来屏蔽,不过也有些不足!
!
!
PrivateSubWebBrowser1_NewWindow2(ppDispAsObject,CancelAsBoolean)
Cancel=True
WebBrowser1.Navigate2WebBrowser1.Document.activeElement.href
EndSub
代码3:
PrivateSubWebBrowser1_NewWindow2(ppDispAsObject,CancelAsBoolean)
OnErrorResumeNext
DimfrmWBAsForm1
SetfrmWB=NewForm1
frmWB.WebBrowser1.RegisterAsBrowser=True
SetppDisp=frmWB.WebBrowser1.object
frmWB.Visible=True
frmWB.Top=Form1.Top
frmWB.Left=Form1.Left
frmWB.Width=Form1.Width
frmWB.Height=Form1.Height
EndSub
功能差不多,任选一个。
2、去掉滚动条
PrivateSubWebBrowser1_DocumentComplete(ByValpDispAsObject,URLAsVariant)
WebBrowser1.Document.Body.Scroll="no"
EndSub
实际上上面的效果不咋地,如果懂得HTML知识,你可以在读取网页的时候,读取HTML源码,查找替换,再写入只需在
之间插入代码:hidden;overflow-y: hidden">即可。 其中x表示水平滚动条,将其改为y的话就可以隐藏垂直滚动条。 当然也有其他方法,比如修改网页的尺寸呀? 有的时候部分元素的居中改为左对齐也能有效果 将WebBrower放在PictureBox控件中,用PictureBox的边框挡住WebBrower的边框。 例如,将WebBrowser1放大点,将PictureBox变小点...PictureBox的appearance设置为0-flat,呵呵,OK~~ 3、禁止鼠标右键 PrivateFunctionM_Dom_oncontextmenu()AsBoolean Webbrowser1.Document.oncontextmenu=False EndFunction '引用MicrosoftHTMLOBjectLibrary DimWithEventsM_DomAsMSHTML.HTMLDocument PrivateFunctionM_Dom_oncontextmenu()AsBoolean M_Dom_oncontextmenu=False EndFunction PrivateSubWebbrowser1_DownloadComplete() SetM_Dom=Webbrowser1.Document EndSub 4、如何获得网页的内容 先给个例子: innerHTML: 设置或获取位于对象起始和结束标签内的HTML 测试一下: #ff9966">这是一个层
functiongetinnerHTML()
{
alert(document.getElementById("d").innerHTML)
}
functionsetinnerHTML()
{
document.getElementById("d").innerHTML=" #449966'>这是一个层,嘿嘿
}
5、多框架框架页面访问
'下面两句可以访问到多框架内容
'.Document.ParentWindow.Frames.Length
'.Document.ParentWindow.Frames
(1).Document.all.tags("a")
'等待多框架网页全部加载完毕,否则出错
While.BusyOr.ReadyState<>4Or.Document.ParentWindow.Frames.Length=0
DoEvents
Wend
6、获得浏览器信息
PrivateSubCommand1_Click()
WebBrowser1.Navigate""
EndSub
PrivateSubCommand2_Click()
DimoWindow
DimoNav
SetoWindow=WebBrowser1.Document.parentWindow
SetoNav=oWindow.navigator
Debug.PrintoNav.userAgent
SetoWindow=Nothing
SetoNav=Nothing
EndSub
7、弹出Webbrowser消息窗口
DimoWindow
SetoWindow=WebBrowser1.Document.parentWindow
oWindow.confirm"abcd"
VB调用webbrowser技巧集2
8、向Webbrowser中写入HTML内容的几种方法
向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"
9、控制页面滚动
WebBrowser1.Document.parentwindow.scrollby0,30
10、判断页面是否可以前进后退
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
11、如何获得网页中被选中部分的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
12、Navigate的参数调用
请问:
在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
13、WebBrowser的方法、属性、事件
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方法来撤销正在执行的访问操作
事件说明
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有效或改变时激发
14、本地文件收藏夹操作
基本上用specialfolder(6)就可以得到收藏夹的路径,然后你可以用dir去循环读入每个目录,然后dir里面的file,file的名字就是你要的收藏的名字,路径可以自己根据从上面得到的路径去得到.
如果你不用dir也可以用vb的dir控件.
PrivateTypeSHITEMID
cbAsLong
abIDAsByte
EndType
PublicTypeITEMIDLIST
mkidAsSHITEMID
EndType
PublicFunctionSpecialFolder(ByRefCSIDLAsLong)AsString
locatethefavoritesfolder
DimRAsLong
DimsPathAsString
DimIDLAsITEMIDLIST
ConstNOERROR=0
ConstMAX_LENGTH=260
R=SHGetSpecialFolderLocation(MDIMain.hwnd,CSIDL,IDL)
IfR=NOERRORThen
sPath=Space$(MAX_LENGTH)
R=SHGetPathFromIDList(ByValIDL.mkid.cb,ByValsPath)
IfRThen
SpecialFolder=Left$(sPath,InStr(sPath,vbNullChar)-1)
EndIf
EndIf
EndFunction
15、让Webbrowser全屏
是的,webbrowser本生是一个控件,你要它全屏,就是要它所在的窗体全屏,
可以用setwindowlong取消窗体的title,
用CallShowWindow(FindWindow(Shell_traywnd,),0)隐藏tray,就是下边那个包含开始那一行.
用CallShowWindow(FindWindow(Shell_traywnd,),9)恢复.够详细了吧.
然后在form1.windowstate=2就可以了.
16、选择网页上的内容
PrivateSubCommand1_Click()
请先选中一些内容
Me.WebBrowser1.ExecWBOLECMDID_COPY,OLECMDEXECOPT_DODEFAULT
MsgBoxClipboard.GetText
EndSub
17、用IE来下载文件
PrivateDeclareFunctionDoFileDownloadLibshdocvw.dll(ByVallpszFileAsString)AsLong
PrivateSubCommand1_Click()
DimsDownloadAsString
sDownload=StrConv(Text1.Text,vbUnicode)
CallDoFileDownload(sDownload)
EndSub
保存webbrowser中的HTML内容
DimoPFAsIPersistFile
SetoPF=WebBrowser1.Document
oPF.Save"TheFileNameHere.htm",False
WebBrowser1.ExecWB怎么用
下面是我测试的参数
WB.ExecWB(4,1)
4,1保存网页
4,2保存网页(可以重新命名)
6,1直接打印
6,2直接打印
7,1打印预览
7,2打印预览
8,1选择参数
8,2选择参数
10,1查看页面属性
10,2查看页面属性
17,1全选
17,2全选
22,1重新载入当前页
22,2重新载入当前页
18、Webbrowser确定窗口对话框
某些网页出于各种考虑会弹出对话框要求信息确认,往往会中断我们的webbrowser过程,可以使用如下方法:
1.加入MicrosoftHtmlObject
2.加入语句
PrivateSubWebBrowser1_NavigateComplete2(ByValpDispAsObject,URLAsVariant)
DimobjAsHTMLDocument
Setobj=pDisp.Document
obj.parentWindow.execScript"functionshowModalDialog(){return;}"'对showModalDialog引起的对话框进行确定
EndSub
而confirm引发的对话确定框可用confirm替换showModalDialog即可,Alert等同理~
WebBrowser取得网页源码PrivateSubCommand1_Click()
WebBrowser1.Navigate"
EndSub
PrivateSubWebBrowser1_DownloadComplete()
'页面下载完毕
Dimdoc,objhtml
Setdoc=WebBrowser1.Document
Setobjhtml=doc.body.createtextrange()
IfNotIsNull(objhtml)Then
Text1.Text=objhtml.htmltext
EndIf
EndSub
19、取得源码调试正常运行错误
我用WebBrowser取得网页源码,直接运行正常,但在编译后出错
提示:
实时错误“91”Object变量或with块变量没有设置
可能是没有下载完所致,
PrivateSubWebBrowser1_DownloadComplete()
ifwebbrowser.busy=falsethen
Dimdoc,objhtml
Setdoc=WebBrowser1.Document
Setobjhtml=doc.body.createtextrange()
IfNotIsNull(objhtml)Then
Text1.Text=objhtml.htmltext
EndIf
endif
EndSub
20、页面元素操作
1.根据标记名(tagname)的和元素名name来找到元素,
2.给元素赋值或是执行相关的事件.
例0:
查看网页元素
dima
foreachainwbr.document.all
text1.text=text1.text&typename(a)&vbcrlf
next
例1:
给username文本框内填充内容:
PrivateSubWebBrowser1_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- webbrowser 相关 操作 大全