回答
我曾经说过沿着关于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. 我应该学习哪种浏览器图形API?
- 5. 我想学习游戏开发。我应该使用哪种语言?
- 6. 我想学习Win32编程
- 7. 我需要学习befor编程聊天?
- 8. 要学习元编程的语言
- 9. 我想学习一种新的(非OOP)语言
- 10. 学习编程语言
- 11. 我应该使用哪种编程语言来制作IDE
- 12. 从哪里开始想要学习特定项目的编程语言?
- 13. 我想编写一个与Instagram API交互的移动应用,我应该使用哪种语言/学习?
- 14. 什么是学习机器学习的最佳编程语言?
- 15. 浏览器仿真 - 我需要哪种硒?
- 16. 我需要学习什么语言来开发Web服务?
- 17. 我正在制作一组框架。我想支持多种编程语言
- 18. 要启动Windows Phone 8开发,学习哪种语言?
- 19. 如果我想刮掉RSS提要,应该使用哪种编程语言?
- 20. 我想学习音频编程
- 21. 哪种语言使用.pde扩展名?
- 22. 学习动画设计需要哪些语言?
- 23. 浏览器 - 文件编写器扩展?
- 24. 哪些编程语言需要IDE?
- 25. 哪些算法我需要学习编写纵横文字编织器?
- 26. 学习汇编语言如何帮助我调试C程序?
- 27. 哪些需要学习Android?
- 28. 学习正确的编程语言?
- 29. 学习编程语言概念
- 30. 学习x86汇编语言。需要一些说明
大多数IE扩展都是使用本机COM接口以C或C++编写的。这个最近一直在改变,但它仍然不是一个推荐的方法。 – 2009-12-18 02:09:51