由于某些原因,当使用IHTMLElement2.focus()方法调用通过C#代码触发时,onfocus事件不会设置window.event (将变为null),而是使用事件信息设置其他一些对象window.Event。这是有原因的吗?我正在使用InternetExplorer的ShDocVw接口,这是我第一次看到这个问题。
发布于 2011-04-18 03:43:31
听起来像是典型的微软bug。他们经常遇到区分大小写的问题,因为从操作系统诞生的第一天起,大小写就被视为一种区别。
我建议也许可以研究一下这篇知识库文章http://msdn.microsoft.com/en-us/library/aa703985(v=vs.85).aspx,特别是tabindex hooha,这听起来像是个笑话,但你还能期待什么。
然后,我建议尝试IHTMLElement的第四种变体,特别是onfocusin事件,作为onfocus的替代。
但最终,由于您是通过shdocvw对象控制环境的--我只是将window.Event对象映射到onfocus处理程序中的window.event对象--一行代码永远不会伤害任何人--除非这一行代码导致堆栈溢出、缓冲区溢出或内存不足异常
https://stackoverflow.com/questions/5625218
复制相似问题