2011-01-28 63 views

回答

0

是的,你可以。 BHO是在IE進程中運行的C++代碼,因此它可以訪問所有內存,並且可以執行其中的任何內容(在進程之外執行的任務是一個單獨的主題,並且受到IE的嚴格限制)。

+2

不,我不會顯示示例代碼或告訴您如何去做。過去三年,我在微軟的BHO工作過,並且我們與IE團隊密切合作。所以,我聽到了足夠多的恐怖故事,並且親眼目睹了(並且在內部造成了:-))對用戶體驗的嚴重破壞或惡意的BHO可能造成的破壞。 – 2011-01-28 14:43:29

+0

你給了我一些想法 - 我會沿着正確的道路做類似這樣的事情:http://www.codeproject.com/KB/cs/jsinjectbhoplugincsharp.aspx – FiveTools 2011-01-28 15:08:59

+0

哦,天啊!不要在頁面中注入HTML或JS!沒有安全的方法來保證你不會因爲這樣做而破壞頁面本身。像這樣的想法引導用戶相信IE是每個人都描述的怪物。 : - ((( – 2011-01-28 15:11:15

0

你有兩個相同的鏈接,你想知道哪些被點擊?

爲什麼不只是添加一個唯一的URL參數,每一個:

<a href='mylink.html?tracking=linkA'>click me</a> 
<a href='mylink.html?tracking=linkB'>click me</a> 

然後你的服務器日誌會告訴你被點擊哪一個。不需要任何IE特定的黑客。

1

您可以sink the DISPID_HTMLELEMENTEVENTS2_ONCLICK event,如果你可以訪問的元素(有時你不這樣做,例如在一個框架元素在另一個域)

哦,記得要在分離您在BeforeNavigate2事件。

問題是沒有可靠的方法來檢測頁面刷新以重新連接事件或處理從腳本(Ajax)生成的元素。