回答
我曾經說過沿着關於IE下面幾行內容:
IE本身是用C++編寫,並大量使用COM的。可擴展性模型也是基於COM的。根據我的經驗,你有以下的取捨選擇之中:
- 純C++和COM。你可以從頭開始構建所有的東西,包括類工廠,COM對象註冊,接口實現等等。你花了一天或者更多的時間來實現IUnknown,IClassFactory,IObjectWithSite等,並且你很難弄清楚IConnectionPoint和IConnectionPointContainer是如何工作的。然而,現在你知道一切都是如何工作的,而且隨着它的發展,你的項目更容易調試和維護,並且你成長爲一個人。如果你這樣做,我保證會給你有用的答案。
- 使用ATL/MFC並用C++編寫。由於所有的COM膠和基本接口都是爲您實施的,因此您的入門速度會更快。不好的一面是你在頭部文件中調試模板化的goo,當事情出錯時你沒有寫出頭文件。您遇到無法解釋的崩潰。
- 您用C#編寫它,並且擁有各種GAC,運行時版本和其他問題。只有在運行時的v4版本中,您纔可以並排託管不同的版本。由於IE擴展真的應該是本地的而不是託管的,所以你從論壇中獲得的幫助減少了。你可以編寫一堆互操作(或者至少pinvoke.net還沒有的),並且在出現錯誤時調試好運。此外,IE會將所有託管擴展視爲mscorewhatever,而不是YourExtension.dll,因此用戶經常會在管理/附加組件用戶界面中感到困惑。而且微軟明確表示不要編寫託管的Shell擴展,所以你必須確保只有iexplore.exe加載你的擴展,而不是explorer.exe。如果你想讓它在其他平臺上運行,你將會在移植時遇到很多麻煩。
這些只是,就像我的意見,但是,所以隨時獲得第二個。
就Firefox而言,您可以在不使用XPCOM的情況下編寫大量的擴展。他們的核心可擴展性模型是XUL + JavaScript,它是所有標記和腳本。所有擴展中的99%可以通過這種方式實現。但是,有些東西在你的框架中是無法做到的,例如Cooliris,所以你必須求助於XPCOM來調用本地代碼(或NPAPI)。
Chrome擴展程序也是Javascript和標記,但是如果您想爲使用任何本機內容的Chrome編寫插件,則必須使用NPAPI,這是一個C API。
因此,簡言之,您可以覆蓋大量的地面使用Javascript,XML和HTML,但是你錯過了IE和你能做什麼是有限的。如果你想要一路走下去,你需要學習C++(並理解NPAPI在C++和C之間的細微區別)。我不建議用C#爲基礎的瀏覽器插件亂搞,儘管無數的例子告訴我們怎樣在C#編寫工具欄的IE瀏覽器。
對於基於Mozilla的瀏覽器,您需要首先查看Javascript(以及列出的其他技術here)。
對於Internet Explorer,任何.NET語言通常用於創建IE瀏覽器插件。
對於所有瀏覽器都沒有單一的答案,但對於像FireFox這樣的Mozilla瀏覽器,你主要是在談論JavaScript。對於IE來說,它自然會是.NET語言。對於其他瀏覽器,它將取決於,但通常一些JavaScript可能帶有一點瀏覽器編程語言。
對於Mozilla瀏覽器,Mozilla開發中心的Extensions部分是一個很好的開始。
不,管理語言不推薦用於IE擴展開發。 – 2009-12-18 02:09:10
其實我不同意其他答案,因爲根據我的經驗,在爲Mozilla或IE編寫擴展時,編程語言的選擇本身並不是一個約束。
IE使用COM,因此您可以像使用C或C++一樣使用.NET語言。
同樣,Mozilla使用XPCOM,讓你真正需要的是一個XPCOM binding而不是任何特定的語言。
我已經在C++中爲這兩種瀏覽器編寫了擴展。我沒有爲其他瀏覽器編寫擴展的經驗。
投票你,因爲你的答案是最準確的。我認爲,我們其餘的回答多爲常見的情況是爲了什麼最參考資源是可用的。 – phoebus 2009-12-18 01:10:42
我的經驗主要是C#和一些C++的拼貼。我想創建的加載項的IE瀏覽器,然後Firefox瀏覽器。請給我提示如何開始 – mustafabar 2010-08-01 08:21:17
- 1. 需要學習哪種彙編語言
- 2. 我需要學習哪些編碼語言才能製作構件構件?
- 3. 我應該學習哪種語言?
- 4. 創建谷歌瀏覽器擴展所需的編程語言
- 5. 我是否需要學習更多的編程語言?
- 6. 我應該學習哪種瀏覽器圖形API?
- 7. 我想學習Win32編程
- 8. 我想學習遊戲開發。我應該使用哪種語言?
- 9. 我需要學習befor編程聊天?
- 10. 要學習元編程的語言
- 11. 我想學習一種新的(非OOP)語言
- 12. 學習編程語言
- 13. 我應該使用哪種編程語言來製作IDE
- 14. 如果我想製作webapps,我真的需要知道多種語言嗎?
- 15. 從哪裏開始想要學習特定項目的編程語言?
- 16. 哪種瀏覽器最容易開發瀏覽器擴展?
- 17. 我想編寫一個與Instagram API交互的移動應用,我應該使用哪種語言/學習?
- 18. 什麼是學習機器學習的最佳編程語言?
- 19. 我需要學習什麼語言來開發Web服務?
- 20. 瀏覽器仿真 - 我需要哪種硒?
- 21. 自然語言處理學習哪種語言或工具?
- 22. 要啓動Windows Phone 8開發,學習哪種語言?
- 23. 我正在製作一組框架。我想支持多種編程語言
- 24. 我想學習音頻編程
- 25. 如果我想刮掉RSS提要,應該使用哪種編程語言?
- 26. 我需要學習DataSet嗎?
- 27. 哪種語言使用.pde擴展名?
- 28. 學習動畫設計需要哪些語言?
- 29. 製作新編程語言需要哪些技能
- 30. 瀏覽器 - 文件編寫器擴展?
大多數IE擴展都是使用本機COM接口以C或C++編寫的。這個最近一直在改變,但它仍然不是一個推薦的方法。 – 2009-12-18 02:09:51