USEGEAR

导航

后台控制浏览器窗口

[转http://www.cnblogs.com/achengit/archive/2011/03/04/1970492.html]
WebBrowser 控件文件:system32\shdocvw.oca shdocvw.dll 注册:regsvr32 shdocvw.dll WebBrowser.OleObject.Document 为活动的文档返回自动化对象,引用 Microsoft HTML Object Library 可查看详细属性和方法

■■方法 ============================== 
▲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.OleObject.Document.getElementsByname("TagName").click。

//【http://blog.csdn.net/liupan9999/article/details/7269474
procedure
TForm1.btnClickUrlClick(Sender: TObject); var J:integer; spDisp: IDispatch; IDoc1: IHTMLDocument2; ielc: IHTMLElementCollection ; ihtml:IHTMLElement; iane:IHTMLAnchorElement; begin WebNav.Document.QueryInterface(IHTMLDocument2,iDoc1); ielc:=idoc1.Get_all; for J:=0 to ielc.length-1 do begin Application.ProcessMessages; spDisp := ielc.item(J, 0); if SUCCEEDED(spDisp.QueryInterface(IHTMLAnchorElement ,iane))then begin if iane.href='http://www.nq51.com/' then //这里我在网页里的url是http://www.nq51.com调用的时候自动加上了'/'需要注意一下 begin ihtml:=ielc.item(J,0) as IHTMLElement; ihtml.click; end; end; end; end;

 

posted on 2013-04-24 18:55  USEGEAR  阅读(635)  评论(0编辑  收藏  举报