C# 如何将.NET委托附加到mshtml事件?
我正在为Internet Explorer开发扩展(BHO),在将.NET委托附加到mshtml对象以捕获DOM事件时遇到问题 我已经尝试使用IHTMlementEvents2_事件发布的事件。。。接口,这是可行的,但前提是我为要捕获其事件的DOM元素指定了正确的类型。我还需要在代码中指定元素的类型,这种技术不允许捕获自定义DOM事件 我还尝试过使用,它通过IHTMLElement2.attachEvent方法将IDispatch对象附加到DOM元素,但这对我根本不起作用。当我尝试访问中描述的事件对象时,在访问DOM元素的document属性时会遇到挂起 那么,如何将事件处理程序附加到DOM元素,而不需要对每种元素和每种事件进行特殊处理呢 谢谢。您可以尝试以下代码:C# 如何将.NET委托附加到mshtml事件?,c#,.net,javascript,events,mshtml,C#,.net,Javascript,Events,Mshtml,我正在为Internet Explorer开发扩展(BHO),在将.NET委托附加到mshtml对象以捕获DOM事件时遇到问题 我已经尝试使用IHTMlementEvents2_事件发布的事件。。。接口,这是可行的,但前提是我为要捕获其事件的DOM元素指定了正确的类型。我还需要在代码中指定元素的类型,这种技术不允许捕获自定义DOM事件 我还尝试过使用,它通过IHTMLElement2.attachEvent方法将IDispatch对象附加到DOM元素,但这对我根本不起作用。当我尝试访问中描述的事
[ComVisible(true)]
public class Foo
{
public Foo(HtmlDocument doc)
{
IHTMLDocument2 doc2 = (IHTMLDocument2)doc.DomDocument;
doc2.onkeydown = this;
}
[System.Runtime.InteropServices.DispId(0)]
public void EventHandler()
{
IHTMLWindow2 win2 = (IHTMLWindow2)_doc.Window.DomWindow;
IHTMLEventObj e = win2.@event;
if (e.keyCode == (int)Keys.F5)
{
// ...
}
}
}