在JavaScript中创建和触发自定义事件相对简单。我试图在WPF WebBrowser控件中执行相同的操作。我天真的做法:
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
,其中包含一个参数超出范围的消息(不说明哪个参数)。我做错了什么?
答案 0 :(得分:0)
嗯,花了几个多小时,但我觉得这很有效:
private void FirePreviewUpdateEvent()
{
dynamic doc = Browser.Document;
var ev = doc.createEvent("event");
ev.initEvent("previewUpdated", true, true);
doc.dispatchEvent(ev);
}
我提出了一些利用已发布的IHtmlDocument
接口的东西,因为不推荐使用像initEvent
这样的方法。如果有人对此有所了解,请分享。