Web浏览器控件:如何捕获文档事件?

Bas*_*sem 10 javascript c# wpf

我正在使用WPF的WebBrowser控件来加载一个简单的网页.在这个页面上我有一个锚或一个按钮.我想在我的应用程序代码中捕获该按钮的click事件(即在C#中).

WebBrowser控件是否有一种方法可以捕获已加载页面元素上的单击事件?

此外,是否可以在页面和WebBrowser之间传递事件触发的数据?以上所有应该是可能的,我是对的吗?

  • 编辑:可能的解决方案:

我找到了以下可能是解决方案的链接.我还没有测试过,但值得拍摄.将根据我的测试结果更新此问题.

http://support.microsoft.com/kb/312777

Bas*_*sem 13

好的答案发现 - 经过测试并且有效:

  • 从COM选项卡添加一个名为Microsoft HTML Object Library的引用

以下是示例代码:

您将需要两个组件:WebBrowser(webBrowser1)和TextBox(textBox1)

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        webBrowser1.LoadCompleted += new LoadCompletedEventHandler(webBrowser1_LoadCompleted);
    }

    private void webBrowser1_LoadCompleted(object sender, NavigationEventArgs e)
    {
        mshtml.HTMLDocument doc;
        doc = (mshtml.HTMLDocument)webBrowser1.Document;
        mshtml.HTMLDocumentEvents2_Event iEvent;
        iEvent = (mshtml.HTMLDocumentEvents2_Event)doc;
        iEvent.onclick += new mshtml.HTMLDocumentEvents2_onclickEventHandler(ClickEventHandler);
    }

    private bool ClickEventHandler(mshtml.IHTMLEventObj e)
    {
        textBox1.Text = "Item Clicked";
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @Bassem引用的代码文章现在可以在这里找到:http://www.dotnetfunda.com/articles/show/840/working-with-webbrowser-in-wpf (2认同)