Csharp/C#教程:Web浏览器控件:如何捕获文档事件?分享


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

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

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

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

我发现以下链接可能是一个解决方案。 我还没有测试过,但值得拍摄。 将根据我的测试结果更新此问题。

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

确定答案发现 – 经过测试且有效:

以下是示例代码:

您将需要两个组件: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; } } 

这是另一个例子。

我试图通过向头部添加一个DOM元素来注入一个远程javascript文件并执行一些代码,这与jQuery.getScript(url,callback)基本相同。 ) ..

下面的代码工作正常。

上述就是C#学习教程:Web浏览器控件:如何捕获文档事件?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 HtmlElementCollection head = browser.Document.GetElementsByTagName("head"); if (head != null) { HtmlElement scriptEl = browser.Document.CreateElement("script"); IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement; element.src = url; element.type = "text/javascript"; head[0].AppendChild(scriptEl); // Listen for readyState changes ((mshtml.HTMLScriptEvents2_Event)element).onreadystatechange += delegate { if (element.readyState == "complete" || element.readyState == "loaded") { Callback.execute(callbackId); } }; } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1020427.html

(0)
上一篇 2022年1月5日
下一篇 2022年1月5日

精彩推荐