WebBrowser控件捕捉DHTML事件

原创 2004年05月17日 17:48:00

             WebBrowser控件捕捉DHTML事件

                  SunHai

   开发工具:Microsoft Visual Studio .NET 2003
   操作系统:Windows XP

  原文:http://www.devx.com/vb2themax/tip/18798

  其他控件一样,我们可以用WebBrowser控件来构筑我们的Windows form应用程序。从工具箱中选择Windows 窗体控件组,单击“Microsoft Web 浏览器”,Visual Studio .NET 在后台使用AxImp.exe工具创建ActiveX 控件,控件名字为“AxWebBrowser”。在VB.NET中,不能直接使用COM组件,COM都是Unmanaged Code,在VB.NET中使用这些组件,必须完成从Unmanaged Code到Managed Code的转换。
  一般地,你可以像使用原来的WebBrowser控件一样,如call 方法,指定属性,捕捉事件等。
  有些事情并不是那么简单的。我们要捕捉页面事件,如当用户点击页面元素(如背景)时,引发页面元素的onclick事件。发果我们没有捕捉到事件,就要提升DHTML的等级,直到Document对象的最高层次。这样,我们就能捕捉到任何事件了。在VB6中,我们可以简单地用WithEvents关键词指定WebBrowser.Document到MSHTML.HTMLDocument。
  在VB.NET中,这个简单方法不再有效。因为ActiveX控件创建了两个接口,两个接口中使用了同样的方法名,导致出现运行时错误。所以,你必须明确指定Document对象使用的接口,并创建事件处理句柄。

  以下是示例代码:

' IMPORTANT: this code assumes that you've added a reference to the
'            Microsoft HTML Object Library type library

Private Sub Form1_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
    AxWebBrowser1.Navigate("
http://localhost/default.asp")
End Sub

Private Sub AxWebBrowser1_NavigateComplete2(ByVal sender As Object, _
    ByVal e As AxSHDocVw.DWebBrowserEvents2_NavigateComplete2Event) Handles _
    AxWebBrowser1.NavigateComplete2
    ' must wait for this event to grab a valid refernece to the Document
    ' property
    Dim doc As mshtml.HTMLDocument = DirectCast(AxWebBrowser1.Document, _
        mshtml.HTMLDocument)

    ' Cast to the interface that defines the event you're interested in
    Dim docevents As mshtml.HTMLDocumentEvents2_Event = DirectCast(doc, _
        mshtml.HTMLDocumentEvents2_Event)
    ' Define a handler to the onclick event
    AddHandler docevents.onclick, AddressOf onclickproc
End Sub

' Notice that the signature of this event is different from usual, as it
' is expected to return a Boolean - if false the default effect associated
' with the event (for example, jumping to another page if the click is on
' an hyperlink) is canceled.

Private Function onclickproc(ByVal obj As mshtml.IHTMLEventObj) As Boolean
    ' an object on the page has been clicked - you can learn more about
    ' type and position of this object by querying the obj's properties
    ' ...
End Function


译者注:
  这是我的第一篇译稿。
  个人心得,近几日在国外有关程序设计网站转悠,得益良多。又想到书法学习的“取法乎上”。共享软件的出路在于走向国际。软件设计的学习又何尝不是这样呢?国际的学习资源相比国内的学习资源如何?
  English决不是障碍。我不相信我的English会比您好。初中基础,加上金山词霸即指即译,足矣。
  


                        2004年5月16日

我的QQ:  26624998
我的网站:
http://blog.csdn.net/2066/

VB的webbrowser控件捕获网页关闭事件

使用VB的WebBrowser控件捕获页面关闭事件代码(适用于window.close()事件):Private Sub WebBrowser1_WindowClosing(ByVal IsChild...
  • hellostory
  • hellostory
  • 2009年12月10日 09:14
  • 3237

DHTML之事件处理

在某个事件发生时通过一个事件句柄对某个元素进行某种操作。 onmouseover 和 onmouseout 在鼠标指针移到并移开一个元素时改变一个元素的颜色 请把鼠标移动到文本上 o...
  • u011731233
  • u011731233
  • 2015年04月17日 18:13
  • 1409

DHTML 大全

方法add向 areas, controlRange 或 options 集合中添加一个元素。add创建一个新的 namespace 对象并将其添加到集合中。addBehavior给元素附加一个行为。...
  • helanye
  • helanye
  • 2009年07月11日 22:45
  • 2662

VB WebBrowser控件总结

1.webbrowser控件的DocumentComplete和DownloadComplete的区别文档完全下载后,一个 DownloadComplete 事件就被引发。这并不一定表明可以通过对...
  • jiutao_tang
  • jiutao_tang
  • 2011年03月06日 09:49
  • 6709

xhtml,xml,html,和dhtml的关系和区别

XHTML产生的原因,一方面是为了和未来的XML大规模的应用接轨,一方面还要兼容目前的数以万计的用HTML编写的网页以及他们的设计者,开发者相兼容,于是便出现了这个东西。以HTML编写的网页中,标记使...
  • a519781181
  • a519781181
  • 2016年07月29日 10:47
  • 1746

webbrowser控件事件

Beforenavigate2: Fired before navigate occurs in the given WebBrowser(window or frameset element). T...
  • daoxwj
  • daoxwj
  • 2013年04月03日 18:25
  • 3039

JS捕获回车事件

document.onkeydown = function(event_e){ if(window.event) event_e = window.e...
  • guoxu775
  • guoxu775
  • 2012年05月09日 17:20
  • 4265

DHTML、XHMLT、HTML的区别

Dhtml是在静态html的基础上综合和其它动态的技术而成的网页技术;DHTML=HTML+CSS+JavaScript+DOM HTML则是纯粹的静态网页技术 XHTML则是在HTML中...
  • u010874036
  • u010874036
  • 2016年08月19日 15:54
  • 691

甘特图-DHtml Gantt 看后的笔记

最近我们项目中用到了甘特图 。开源
  • yinnannan
  • yinnannan
  • 2014年06月09日 17:03
  • 1156

DHTML动态样式的作用

DHTML 的动态样式的作用是() DHTML实现了网页从Web服务器下载后无需再经过服务的处理,而在浏览器中直接动态地更新网页的内容、排版样式和动画的功能。例如,当鼠标指针移到文章段落中时,段落能...
  • qq_27437967
  • qq_27437967
  • 2017年05月22日 23:30
  • 332
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WebBrowser控件捕捉DHTML事件
举报原因:
原因补充:

(最多只允许输入30个字)