由于某种原因,当使用IHTMLElement2.focus()方法调用通过C#代码触发时,onfocus事件不会设置window.event(它将变为null),而是一些其他对象window.Event将设置为活动信息。是否有一个原因?我正在为InternetExplorer使用ShDocVw接口,这是我第一次看到这个问题。
答案 0 :(得分:1)
听起来像一个典型的微软bug。它们通常会出现区分大小写的问题,因为从操作系统的第一天起它就被视为一种区别。
我建议也许可以查看这篇kb文章http://msdn.microsoft.com/en-us/library/aa703985(v=vs.85).aspx,特别是tabindex hooha听起来像个笑话,但你还能期待什么。
然后我建议尝试IHTMLElement的第四种变体形式,尤其是onfocusin事件作为onfocus的替代品。
但最终因为你通过shdocvw对象来控制环境 - 我只是将window.Event对象映射到你的onfocus处理程序中的window.event对象 - 一行代码永远不会伤害任何人 - 除了那个代码行伤害了堆栈溢出,缓冲区溢出或Out of Memory异常的人当然:D