webbrowser相关操作大全.docx

上传人:b****4 文档编号:5282767 上传时间:2023-05-08 格式:DOCX 页数:22 大小:24.47KB
下载 相关 举报
webbrowser相关操作大全.docx_第1页
第1页 / 共22页
webbrowser相关操作大全.docx_第2页
第2页 / 共22页
webbrowser相关操作大全.docx_第3页
第3页 / 共22页
webbrowser相关操作大全.docx_第4页
第4页 / 共22页
webbrowser相关操作大全.docx_第5页
第5页 / 共22页
webbrowser相关操作大全.docx_第6页
第6页 / 共22页
webbrowser相关操作大全.docx_第7页
第7页 / 共22页
webbrowser相关操作大全.docx_第8页
第8页 / 共22页
webbrowser相关操作大全.docx_第9页
第9页 / 共22页
webbrowser相关操作大全.docx_第10页
第10页 / 共22页
webbrowser相关操作大全.docx_第11页
第11页 / 共22页
webbrowser相关操作大全.docx_第12页
第12页 / 共22页
webbrowser相关操作大全.docx_第13页
第13页 / 共22页
webbrowser相关操作大全.docx_第14页
第14页 / 共22页
webbrowser相关操作大全.docx_第15页
第15页 / 共22页
webbrowser相关操作大全.docx_第16页
第16页 / 共22页
webbrowser相关操作大全.docx_第17页
第17页 / 共22页
webbrowser相关操作大全.docx_第18页
第18页 / 共22页
webbrowser相关操作大全.docx_第19页
第19页 / 共22页
webbrowser相关操作大全.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

webbrowser相关操作大全.docx

《webbrowser相关操作大全.docx》由会员分享,可在线阅读,更多相关《webbrowser相关操作大全.docx(22页珍藏版)》请在冰点文库上搜索。

webbrowser相关操作大全.docx

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_

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2