[英]MSHTML: IHtmlDocument - how to subscribe to custom javascript events
我正在用c#編寫IE擴展。 我有一個名為IHtmlDocument2
browser
的IWebBrowser2
對象,從中可以得到一個這樣的IHtmlDocument2
對象:
var document = browser.Document as IHTMLDocument2;
現在,我需要對此代碼觸發的javascript事件做出反應:
var event = document.createEvent("HTMLEvents");
event.initEvent('MyCustomEvent', true, false);
someElement.dispatchEvent(event);
我看到我可以使用HTMLDocumentEvents2界面中的click
, mouseleave
和其他屬性來訂閱典型事件,但是找不到OnCustomEvent
或HtmlEvents['MyCustomEvent'] += ...
等東西。
在firefox附加組件中實現此功能很容易,但是使用IE卻很痛苦……甚至可能嗎? 謝謝
您可以使用attachEvent來監聽事件。 我已經測試了IE 10中onmessage事件(沒有特定的事件處理程序)的類似代碼。
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.AutoDispatch)]
public class EventListener
{
[DispId(0)]
public void handler(IHTMLEventObj evt)
{
MessageBox.Show("message received");
}
}
void AddEventListener()
{
var evtListener = new EventListener();
var window = ((IHTMLDocument2)browser.Document).parentWindow as IHTMLWindow3;
window.attachEvent("MyCustomEvent", evtListener); //or try onMyCustomEvent
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.