2011-04-11 71 views
3

由於某些原因,當通過使用IHTMLElement2.focus()方法調用通過C#代碼觸發時,onfocus事件不會設置window.event(它將變爲null),而不是某個其他對象窗口.Event將設置事件信息。是否有一個原因?我爲InternetExplorer使用ShDocVw界面,這是我第一次看到這個問題。window.Event vs window.event

回答

1

聽起來像一個典型的微軟錯誤。他們經常遇到區分大小寫的問題,因爲從第一天起,OS就已經被看作是區別。

我建議也許看看這個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

+0

是的,我們必須更改var evt = e || window.event;到var evt = e || window.event || window.Event;我覺得這很愚蠢,我會嘗試onfocusin。謝謝 – 2011-04-18 02:09:53

相關問題