我已经向IHTMLElement实例添加了回调,但是当为事件调用IDispatch :: Invoke时,从不存在任何参数(即pDispParams-> cArgs和pDispParams-> cNamedArgs始终为0)。例如,我为onmouseup事件添加了一个回调。据我所知,这个事件的回调应该接收一个MouseEvent对象。那是对的吗?如果是这样,我需要做些什么来确保这种情况发生?

这是在Windows XP SP2上使用MSHTML for IE 6 sp2(或更好)。

有帮助吗?

解决方案

所有DOM事件的事件参数,包括 onmouseup ,都存储在父窗口的 event 属性中( IHTMLWindow2 :: event

如果您还没有缓存父窗口, IHTMLElement 有一个 document 属性,它返回 IHTMLDocument 接口。从那里你可以查询 IHTMLDocument2 ,它有一个 parentWindow 属性。返回的 IHTMLWindow2 具有您正在寻找的 event 属性。您应该能够从那里查询事件接口。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top