zoukankan      html  css  js  c++  java
  • WebBrowser 控件-说明

    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。

  • 相关阅读:
    C++类中的封装-9
    递归神经网络
    卷积神经网络
    Tensorflow人工智能神经网络学习
    右键弹出菜单 并动态新增菜单子项
    sql 列转行
    sql 删除表中某字段的重复数据
    疑难问题解决
    jquery ashx交互 返回list 循环json输入信息
    jquery 控件赋值
  • 原文地址:https://www.cnblogs.com/a9999/p/3445654.html
Copyright © 2011-2022 走看看