• WebBrowser 控件说明


    控件文件:system32\shdocvw.oca  shdocvw.dll 
    注册:regsvr32 shdocvw.dll 
    WebBrowser 是 IE 内核做的 VB 控件, 
    WebBrowser.Document 为活动的文档返回自动化对象,引用 Microsoft HTML Object Library 可查看详细属性和方法

    下面的解说假设窗体中有一个名称为 Web1 的 WebBrowser 控件 
    ■■方法 ============================== 
    ▲GoBack    相当于IE的“后退”按钮,使你在当前历史列表中后退一项 
    ▲GoForward 相当于IE的“前进”按钮,使你在当前历史列表中前进一项 
    ▲GoHome    相当于IE的“主页”按钮,连接用户默认的主页 
    ▲GoSearch  相当于IE的“搜索”按钮,连接用户默认的搜索页面 
    ▲Navigate  连接到指定的 URL,并显示网页 
    ▲Navigate2 与 Navigate 作用同? 
    ▲Refresh   刷新当前页面 
    ▲Refresh2  同上,只是可以指定刷新级别,所指定的刷新级别的值来自RefreshConstants枚举表, 
       该表定义在ExDisp.h中,可以指定的不同值如下: 
       REFRESH_NORMAL 执行简单的刷新,不将HTTP pragma: no-cache头发送给服务器 
       REFRESH_IFEXPIRED 只有在网页过期后才进行简单的刷新 
       REFRESH_CONTINUE 仅作内部使用。在MSDN里写着DO NOT USE! 请勿使用 
       REFRESH_COMPLETELY 将包含pragma: no-cache头的请求发送到服务器 
    ▲Stop      相当于IE的“停止”按钮,停止当前页面及其内容的载入 
    ■■属性=================================== 
    ▲Document 为活动的文档返回自动化对象。如果HTML当前正被显示在 Web1 中,则 Document 提供 
             对DHTML Object Model的访问途径。下面有详细介绍 
    ▲TopLevelContainer 返回一个Boolean值,表明 IE 是否是 Web1 控件顶层容器,是就返回 true 
    ▲Type    返回已被 Web1 控件加载的对象的类型。例如: 
            如果加载.doc文件,就会返回 Microsoft Word Document 
    ▲LocationName 返回一个字符串,该字符串包含着 Web1 当前显示的资源的名称, 
            如果资源是网页就是网页的标题; 
            如果是文件或文件夹,就是文件或文件夹的名称 
    ▲LocationURL 返回 Web1 当前正在显示的资源的 URL 
    ▲Busy 返回一个Boolean值,说明 Web1 当前是否正在加载 URL,如果返回 true 
            就可以使用 stop 方法来撤销正在执行的访问操作 
    ▲Object  设置返回一个显现网页的 SHDocVwCtl.WebBrowser_V1 对象。参见下文。 
    ▲MenuBar 
    ▲StatusBar 
    ▲ToolBar 
    ▲Visible 
    ▲ 
    ■■事件=================================== 
    ▲BeforeNavigate2    导航发生前触发(打开网页前),刷新时不触发 
    ▲CommandStateChange 当命令的激活状态改变时触发。它表明何时激活或关闭Back和Forward菜单项或按钮 
    ▲DocumentComplete   当整个文档完成是触发,刷新页面不触发 
    ▲DownloadBegin      当某项下载操作已经开始后触发,刷新也可触发此事件 
    ▲DownloadComplete   当某项下载操作已经完成后触发,刷新也可触发此事件 
    ▲NavigateComplete2  导航完成后触发,刷新时不触发 
    ▲NewWindow2         弹出新窗口以前触发 
       可在此事件中设置 ppDisp 参数新网页显示对象,同时不会出现 SHDocVwCtl.WebBrowser_V1 的 NewWindow 事件 
    ▲OnFullScreen       当 FullScreen 属性改变时触发。该事件采用 VARIENT_BOOL 的一个输入参数来指示 IE 是全 
       屏显示方式(VARIENT_TRUE)还是普通显示方式(VARIENT_FALSE) 
    ▲OnMenuBar          改变 MenuBar 属性时触发,标示参数是 VARIENT_BOOL 类型的。 
       VARIANT_TRUE 可见,VARIANT_ FALSE 隐藏 
    ▲OnQuit             无论是用户关闭浏览器还是开发者调用Quit方法,当IE退出时就会触发 
    ▲OnStatusBar        改变 StatusBar 属性时触发,标示状态栏是否可见。 
    ▲OnToolBar          改变 ToolBar 属性时触发,标示工具栏是否可见。 
    ▲OnVisible          改变 Visible 属性时触发 
    ▲StatusTextChange   控件的状态信息改变时触发。 
    ▲TitleChange        网页标题改变时触发。参数 Text 是新标题,Web1.LocationName 属性是旧标题 
    ■■SHDocVwCtl.WebBrowser_V1 对象================== 
      在窗体声明部分加入:Private WithEvents Web_V1 As SHDocVwCtl.WebBrowser_V1 
      在  Form_Load 加入:Set Web_V1 = Web1.Object 
      这样,Web_V1 就会有如下事件: 
    ▲NewWindow  弹出新窗口以前触发 
      如果在 Web1_NewWindow2 设置了 ppDisp 为新显示对象,就不会出现此事件 
      ★例子1,用自己开发的程序的新窗口显示弹出网页: 
        Dim nForm As New FormMain 'FormMain 为你的放有 Web1 控件的窗体 
        Processed = True '阻止控件调用 IE 弹出窗口 
        nForm.Show 
        nForm.Web1.Navigate URL 
      ★例子2,在同一窗口显示网页: 
        Processed = True '阻止控件调用 IE 弹出窗口 
        Web1.Navigate URL 
    ■■■■■■■■■■■■■■■■■■■■■■■■ 
    ■■Web1.Document 对象(HTMLDocument 对象)======================= 
    ▲All(1)集合,已加载到 Web1 中的 html 文档包含的所有标签对象:HTMLAreaElement 
      集合对象索引起点为0,总个数为 All.length 
      可以用索引访问其中对象,如:All(1) 
      也可以用 Html 头元素名称访问对象,如:All("body") 
      All(0) 一般是自身的 outerHTML,可以这样返回文档代码(查看源文件): 
        Text1.Text = Web1.Document.All(0).outerhtml 
      但上一条语句并不可靠,有的网页开头的代码不是<html>,而是其他,例如:<!--STATUS OK--> 
      All()集合有 HTMLAreaElement 对象的大多数属性,有的元素还有特有的属性。 
      注意 某元素的 sourceIndex 属性就是该对象在 Document.All() 集合中的编号 
    ▲body          主体元素对象:IHTMLElement 
    ▲activeElement 活动元素:IHTMLElement 
    ▲anchors       锚集合:IHTMLElementCollection 
    ▲appendChild   方法:附加子对象(newChild As IHTMLDOMNode) As IHTMLDOMNode 
    ▲applets       程序集合Java:IHTMLElementCollection 
    ▲attachEvent   方法:隶属事件(event As String, pdisp As object) As Boolean 
    ▲attributes    属性对象:object 
    ▲bgColor       背景色:Variant 
    ▲childNodes    子节点:object 
    ▲clear         方法:清除 
    ▲cloneNode     方法:复制节点(fDeep As Boolean) As IHTMLDOMNode 
    ▲close         方法:关闭 
    ▲compatMode 
    ▲cookie                 缓存 
    ▲createAttribute        方法:创建属性(bstrattrName As String) As IHTMLDOMAttribute 
    ▲createComment          方法:创建注释(bstrdata As String) As IHTMLDOMNode 
    ▲createDocumentFragment 方法:创建文档片段() As IHTMLDocument2 
    ▲createDocumentFromUrl  方法:从URL创建文档(bstrUrl As String, bstrOptions As String) As IHTMLDocument2 
    ▲createElement          方法:创建元素(eTag As String) As IHTMLElement 
    ▲CreateEventObject      方法:创建事件对象([pvarEventObject]) As IHTMLEventObj 
    ▲createRenderStyle      方法:(v As String) As IHTMLRenderStyle 
    ▲createStyleSheet       方法:创建方式表([bstrHref As String], [lIndex As Long = -1]) As IHTMLStyleSheet 
    ▲createTextNode         方法:创建文本节点(text As String) As IHTMLDOMNode 
    ▲defaultCharset         默认字符集? 
    ▲detachEvent            方法:分离事件(event As String, pdisp As object) 
    ▲dir 
    ▲doctype             文档类型:IHTMLDOMNode 
    ▲documentElement      文档元素:IHTMLElement 
    ▲domain 
    ▲elementFromPoint     方法:点所属组(x As Long, y As Long) As IHTMLElement 
    ▲embeds               :IHTMLElementCollection 
    ▲execCommand          方法:实行命令(cmdID As String, [showUI As Boolean = False], [value]) As Boolean 
    ▲execCommandShowHelp  方法:帮助命令(cmdID As String) As Boolean 
    ▲fgColor              前景色:Variant 
    ▲fileCreatedDate      文件创建日期 
    ▲file Modified Date   文件修改日期 
    ▲fileSize             文件大小 
    ▲fileUpdatedDate      文件更新日期 
    ▲FireEvent            方法:首事件(bstrEventName As String, [pvarEventObject]) As Boolean 
    ▲firstChild           首子对象:IHTMLDOMNode 
    ▲focus                方法: 
    ▲forms                窗体:IHTMLElementCollection 
    ▲frames               框架结构:FramesCollection 
    ▲getElementById       方法:获取指定的 ID 元素(v As String) As IHTMLElement 
    ▲getElementsByName    方法:获取指定的   Name  元素集合(v As String) As IHTMLElementCollection 
    ▲getElementsByTagName 方法:获取指定的 TagName 元素集合(v As String) As IHTMLElementCollection 
    ▲hasChildNodes        方法: 
    ▲hasFocus             方法:() As Boolean 
    ▲images               图像集合:IHTMLElementCollection

    ▲implementation       执行:IHTMLDOMImplementation 
    ▲insertBefore         方法:插入前面(newChild As IHTMLDOMNode, [refChild]) As IHTMLDOMNode 
    ▲lastChild 
    ▲lastModified         上一修改 
    ▲linkColor            链接色 
    ▲alinkColor           A 链接色: 
    ▲vlinkColor           V 链接色: 
    ▲links                连接集合:IHTMLElementCollection 
    ▲location             位置:HTMLLocation 
    ▲media                媒体 
    ▲mimeType 
    ▲nameProp 
    ▲namespaces           名称空间:object 
    ▲nextSibling          下一相同对象 
    ▲nodeName 
    ▲nodeType 
    ▲nodeValue 
    ▲open              方法:打开([url As String = "text/html"], [name], [features], [replace]) As object 
    ▲ownerDocument     所有者文档:object 
    ▲parentNode        父节点:IHTMLDOMNode 
    ▲parentWindow      父窗口:IHTMLWindow2 
    ▲plugins           插件集合?:IHTMLElementCollection 
    ▲previousSibling   前一兄弟:IHTMLDOMNode 
    ▲protocol          协议 
    ▲queryCommandEnabled   方法:查询命令能否执行(cmdID As String) As Boolean 
    ▲queryCommandIndeterm  方法:查询命令?  (cmdID As String) As Boolean 
    ▲queryCommandState     方法:查询命令状态(cmdID As String) As Boolean 
    ▲queryCommandSupported 方法:查询命令支持(cmdID As String) As String 
    ▲queryCommandText      方法:查询命令文本(cmdID As String) As Boolean 
    ▲queryCommandValue     方法:查询命令值  (cmdID As String) 
    ▲readyState 
    ▲recalc         方法:([fForce As Boolean = False]) 
    ▲referrer 
    ▲releaseCapture 方法: 
    ▲removeChild    方法: 
    ▲removeNode     方法: 
    ▲replaceChild   方法: 
    ▲replaceNode    方法:替换节点(replacement As IHTMLDOMNode) As IHTMLDOMNode 
    ▲scripts              script集合:IHTMLElementCollection 
    ▲security             安全:String 
    ▲selection            已选择的对象集合:IHTMLSelectionObject 
    ▲styleSheets          方式表单:HTMLStyleSheetsCollection 
    ▲swapNode   方法:交换节点(otherNode As IHTMLDOMNode) As IHTMLDOMNode 
    ▲title 
    ▲toString   方法: 
    ▲url 
    ▲URLUnencoded 
    ▲write      方法:(ParamArray psarray() As Variant) 
    ▲writeln    方法:(ParamArray psarray() As Variant) 
    ▲onstop 既是属性,又是事件 
    ▲共有属性和事件 
    ■■共有属性和事件:既是属性,又是事件。面带 on 的======================= 
    ▲onactivate         onActivate         激活 
    ▲onafterupdate      onAfterUpdate      更新后 
    ▲onbeforeactivate   onBeforeActivate   激活前 
    ▲onbeforecopy       onBeforeCopy       复制前 
    ▲onbeforecut        onBeforeCut        剪切前 
    ▲onbeforedeactivate onBeforeDeactivate 无效前 
    ▲onbeforeeditfocus  onBeforeEditFocus  获得编辑焦点前 
    ▲onbeforepaste      onBeforePaste      粘贴前 
    ▲onbeforeupdate     onBeforeUpdate     更新前 
    ▲onblur             onBlur             模糊 
    ▲oncellchange       onCellChange       单元改变 
    ▲onclick            onClick            单击 
    ▲oncontextmenu      onContextMenu      上下文菜单 
    ▲oncontrolselect    onControlSelect    控件选定 
    ▲oncopy             onCopy             复制 
    ▲oncut              onCut              剪切 
    ▲ondataavailable    onDataAvailable    有用数据 
    ▲ondatasetchanged   onDataSetChanged   数据设置改变 
    ▲ondatasetcomplete  onDataSetComplete  数据设置完成 
    ▲ondblclick         onDblClick         双击 
    ▲ondeactivate       onDeactivate       变为非活动 
    ▲ondrag             onDrag             拖 
    ▲ondragend          onDragEnd          拖结束 
    ▲ondragenter        onDragEnter        拖进 
    ▲ondragleave        onDragLeave        拖离 
    ▲ondragover         onDragOver         拖过 
    ▲ondragstart        onDragStart        拖开始 
    ▲ondrop             onDrop 
    ▲onerrorupdate      onErrorUpdate      更新错误 
    ▲onfilterchange     onFilterChange     过滤器改变 
    ▲onfocus            onFocus       
    ▲onfocusin          onFocusIn          焦点进入 
    ▲onfocusout         onFocusOut         焦点离开 
    ▲onhelp             onHelp 
    ▲onkeydown          onKeyDown 
    ▲onkeypress         onKeyPress 
    ▲onkeyup            onKeyUp 
    ▲onlayoutcomplete   onLayoutComplete   版面完成 
    ▲onlosecapture      onLoseCapture      失去捕获 
    ▲onmousedown        onMouseDown 
    ▲onmouseenter       onMouseEnter 
    ▲onmouseleave       onMouseLeave 
    ▲onmousemove        onMouseMove 
    ▲onmouseout         onMouseOut 
    ▲onmouseover        onMouseOver 
    ▲onmouseup          onMouseUp 
    ▲onmousewheel       onMouseWheel       鼠标滚轮 
    ▲onmove             onMove 
    ▲onmoveend          onMoveEnd 
    ▲onmovestart        onMoveStart 
    ▲onpage             onPage 
    ▲onpaste            onPaste            粘贴 
    ▲onpropertychange   onPropertyChange   性质改变 
    ▲onreadystatechange onSeadyStateChange 准备状态改变 
    ▲onresize           onResize 
    ▲onresizeend        onResizeEnd 
    ▲onresizestart      onResizeStart 
    ▲onrowenter         onRowEnter         行进入 
    ▲onrowexit          onRowExit 
    ▲onrowsdelete       onRowsDelete 
    ▲onrowsinserted     onRowsInserted 
    ▲onscroll           onScroll 
    ▲onselectstart      onSelectStart 
      ------- 
    ■■HTMLDivElement  对象:div 元素特有的属性======================= 
    ▲align         排列:String 
    ▲dataFld       数据流体:String 
    ▲dataFormatAs  数据格式:String 
    ▲dataSrc       数据Src:String 
    ▲noWrap 
    ■■HTMLAreaElement  对象:区域元素 大多数元素共有的属性======================= 
    一个 HTMLAreaElement 可以包含多个 HTMLAreaElement 对象,用 all() 集合访问 
    ▲sourceIndex   对象在 Document.All() 集合中的编号 
    ▲accessKey  String:访问键 
    ▲addBehavior  方法:添加行为(bstrUrl As String, [pvarFactory]) As Long 
    ▲addFilter    方法:添加过滤器(pUnk As Unknown) 
    ▲all          【参 HTMLAreaElement】 
    ▲alt 
    ▲appendChild  【参 HTMLAreaElement】 
    ▲applyElement 方法:申请元素(apply As IHTMLElement, where As String) As IHTMLElement 
    ▲attachEvent  方法:隶属事件(event As String, pdisp As object) As Boolean 
    ▲attributes   【参 HTMLAreaElement】 
    ▲behaviorUrns 行为缸对象:object 
    ▲blur         方法:模糊 
    ▲canHaveChildren 是否能拥有子对象 
    ▲canHaveHTML     是否能拥有HTML 
    ▲childNodes      子节点:object 
    ▲children        是否子对象 
    ▲className       类名 
    ▲clearAttributes 方法:清除属性 
    ▲click           方法:单击 
    ▲clientHeight    内部高度? 
    ▲clientLeft 
    ▲clientTop 
    ▲clientWidth 
    ▲cloneNode          方法:克隆节点(fDeep As Boolean) As IHTMLDOMNode 
    ▲componentFromPoint 方法:点所属组(x As Long, y As Long) As String 
    ▲contains           方法:包含contains(pChild As IHTMLElement) As Boolean 
    ▲contentEditable 
    ▲coords 
    ▲createControlRange 方法:创建控制山脉(行列)() As object 
    ▲currentStyle       当前样式:IHTMLCurrentStyle 
    ▲detachEvent        方法:分离事件(event As String, pdisp As object) 
    ▲dir 
    ▲disabled       不可用 
    ▲document       文档对象:object 
    ▲doScroll  方法([component]) 
    ▲dragDrop  方法:拖放 
    ▲filters   过滤器: IHTMLFiltersCollection 
    ▲FireEvent 方法FireEvent(bstrEventName As String, [pvarEventObject]) As Boolean 
    ▲firstChild  首子对象:IHTMLDOMNode 
    ▲focus            方法 
    ▲getAdjacentText  方法:获取临近文本(where As String) As String 
    ▲getAttribute     方法:获取属性(strAttributeName As String, [lFlags As Long]) 
    ▲getAttributeNode 方法:获取属性节点(bstrName As String) As IHTMLDOMAttribute 
    ▲getBoundingClientRect 方法:获取内部范围矩形() As IHTMLRect 
    ▲getClientRects        方法:获取委托矩形() As IHTMLRectCollection 
    ▲getElementsByTagName  【参 HTMLAreaElement】 
    ▲getExpression         方法:获取表达(propname As String) 
    ▲hasChildNodes         【参 HTMLAreaElement】 
    ▲hash        无用信息 
    ▲hideFocus 
    ▲host        主人 
    ▲hostname    主人名称 
    ▲href      默认属性 
    ▲id          标示字符串 
    ▲innerHTML   元素内的 html 代码 
    ▲innerText   内部的纯文本,可以显示到网页上的文字 
    ▲insertAdjacentElement 方法:插入临近元素(where As String, insertedElement As IHTMLElement) As IHTMLElement 
    ▲insertAdjacentHTML    方法:(where As String, html As String) 
    ▲insertAdjacentText    方法:(where As String, text As String) 
    ▲insertBefore          方法:(newChild As IHTMLDOMNode, [refChild]) As IHTMLDOMNode 
    ▲isContentEditable 
    ▲isDisabled 
    ▲isMultiLine 
    ▲isTextEdit 
    ▲lang 
    ▲language 
    ▲lastChild 
    ▲mergeAttributes  方法:合并属性(mergeThis As IHTMLElement, [pvarFlags]) 
    ▲nextSibling      下一同级对象 
    ▲nodeName 
    ▲nodeType 
    ▲nodeValue 
    ▲noHref 
    ▲normalize        方法:规格化 
    ▲offsetHeight  偏移(缩进)高度 
    ▲offsetLeft 
    ▲offsetParent 
    ▲offsetTop 
    ▲offsetWidth

    ▲outerHTML          包含元素本身及内部的 html 代码 
    ▲outerText 
    ▲ownerDocument 
    ▲parentElement 
    ▲parentNode 
    ▲parentTextEdit 
    ▲pathname 
    ▲port 
    ▲previousSibling 
    ▲protocol 
    ▲readyState 
    ▲recordNumber 
    ▲releaseCapture       方法:释放捕获 
    ▲removeAttribute      方法:移除属性 
    ▲removeAttributeNode  方法 
    ▲removeBehavior       方法:移除行为 
    ▲removeChild          方法 
    ▲removeExpression     方法 
    ▲removeFilter         方法 
    ▲removeNode           方法 
    ▲replaceAdjacentText  方法:替换临近文本 
    ▲replaceChild         方法 
    ▲replaceNode          方法 
    ▲runtimeStyle   运行方式:IHTMLStyle 
    ▲scopeName      范围名称 
    ▲scrollHeight 
    ▲scrollIntoView   方法 
    ▲scrollLeft 
    ▲scrollTop 
    ▲scrollWidth 
    ▲search 
    ▲setActive        方法 
    ▲setAttribute     方法 
    ▲setAttributeNode 方法 
    ▲setCapture       方法 
    ▲setExpression    方法 
    ▲shape 
    ▲style 
    ▲swapNode         方法:交换节点 
    ▲tabIndex 
    ▲tagName          标签名 
    ▲tagUrn           标签缸 
    ▲target           目标 
    ▲title 
    ▲toString 
    ■■Web1 应用例子 
    ▲在网页加裁完毕后,运行其中某层的链接,当然事先必须知道该层链接的TagName: 
       WebBrowser1.Document.getElementsByname("TagName").click。

  • 相关阅读:
    系统架构师学习笔记_第十一章(下)
    通过IronRuby和C#学习RUBY系列[0]
    TIPS to comment your code
    超级简单:DIV布局
    js 查询XML数据添加到HTML select控件
    《架构之美》读书笔记(一)
    18个不常见的C#关键字,您使用过几个?
    如何成为人尽皆知的C#开发人员
    实现Visual Studio 2010一个很简单的很酷的扩展
    一种简单的直观的高效的权限设计
  • 原文地址:https://www.cnblogs.com/goody9807/p/2529109.html
Copyright © 2020-2023  润新知