C# 使用WPF webbrowser控件创建并触发自定义事件
在JavaScript中创建和触发自定义事件相对简单。我正试图在WPF WebBrowser控件中执行同样的操作。我天真的做法:C# 使用WPF webbrowser控件创建并触发自定义事件,c#,wpf,webbrowser-control,C#,Wpf,Webbrowser Control,在JavaScript中创建和触发自定义事件相对简单。我正试图在WPF WebBrowser控件中执行同样的操作。我天真的做法: private void FirePreviewUpdateEvent() { var doc4 = (IHTMLDocument4) WPFBrowser.Document; if (doc4 == null) return; object eventObject = doc4.CreateEventO
private void FirePreviewUpdateEvent()
{
var doc4 = (IHTMLDocument4) WPFBrowser.Document;
if (doc4 == null) return;
object eventObject = doc4.CreateEventObject(null);
doc4.FireEvent("onpreviewupdated", ref eventObject);
}
eventObject
返回一个有效的ComObject
,但触发该事件会抛出一个ArgumentException
,并显示一条消息,说明某个参数超出范围(不说明是哪个参数)。我做错了什么?好吧,花了几个多小时,但我发现这是可行的:
private void FirePreviewUpdateEvent()
{
dynamic doc = Browser.Document;
var ev = doc.createEvent("event");
ev.initEvent("previewUpdated", true, true);
doc.dispatchEvent(ev);
}
我提出了一些利用已发布的
IHtmlDocument
接口的方法,因为像initEvent
这样的方法已被弃用。如果有人对此有见解,请分享。好吧,这花了几个小时,但我发现这很有效:
private void FirePreviewUpdateEvent()
{
dynamic doc = Browser.Document;
var ev = doc.createEvent("event");
ev.initEvent("previewUpdated", true, true);
doc.dispatchEvent(ev);
}
我提出了一些利用已发布的IHtmlDocument
接口的方法,因为像initEvent
这样的方法已被弃用。如果有人对此有见解,请分享