none
如何获得应用程序窗体中webbrowser控件所包含的网页元素的事件 RRS feed

  • 问题

  • 请问:

    我在VS9中用VB.net编程,在Form1_Load写入了

    WebBrowser1.DocumentText = "<html><body>abc<input type='submit' id='frist' value='提交'/>" & _
            "<a id='sco' href='#'>this is link</a></br>" & _
            "<a id='th' href='#'>this is link too</a>" & _
            "</body><html>"

    在WebBrowser1_DocumentCompleted中写入

     WebBrowser1.Document.GetElementById("frist").AttachEventHandler("onclick", AddressOf frist_click)
            WebBrowser1.Document.GetElementById("sco").AttachEventHandler("onclick", AddressOf sco_click)
            WebBrowser1.Document.GetElementById("th").AttachEventHandler("onclick", AddressOf th_click)

    并且建立三个过程 frist_click,sco_click,th_click,但奇怪的是程序在执行时,点其中之一的控件,后回头再点第一个时,对应的过程被执行多次,好像是程序将每次的点击都记忆下来,并且在控件中响应多次,请问这是怎么一回事,如何处理

    • 已编辑 Fox Cat 2010年4月20日 6:36 进一步说明
    2010年4月20日 1:41

答案

  • WebBrowser1_DocumentCompleted里绑定了多次

    绑定事件时判断当前的e.url


    http://feiyun0112.cnblogs.com/
    • 已标记为答案 Kira Qian 2010年4月27日 9:43
    2010年4月21日 8:16
    版主
  • 每个框架下载完成都会触发这个事件。你可以检查浏览器的状态来确定是否下载完成。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    • 已标记为答案 Kira Qian 2010年4月27日 9:43
    2010年4月24日 0:39
    版主
  • 你好!

         你在WebBrowser1_DocumentCompleted中订阅了多个控件的Click事件

         你尝试把订阅事件的代码放到Load 中试试!


    周雪峰
    • 已标记为答案 Kira Qian 2010年4月27日 9:43
    2010年4月25日 5:09
    版主

全部回复

  • WebBrowser1_DocumentCompleted里绑定了多次

    绑定事件时判断当前的e.url


    http://feiyun0112.cnblogs.com/
    • 已标记为答案 Kira Qian 2010年4月27日 9:43
    2010年4月21日 8:16
    版主
  • 每个框架下载完成都会触发这个事件。你可以检查浏览器的状态来确定是否下载完成。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    • 已标记为答案 Kira Qian 2010年4月27日 9:43
    2010年4月24日 0:39
    版主
  • 你好!

         你在WebBrowser1_DocumentCompleted中订阅了多个控件的Click事件

         你尝试把订阅事件的代码放到Load 中试试!


    周雪峰
    • 已标记为答案 Kira Qian 2010年4月27日 9:43
    2010年4月25日 5:09
    版主