Firefox扩展和插件有什么区别?

时间:2010-11-07 22:44:54

标签: firefox firefox-addon browser-plugin browser-addons

在Firefox中有插件和扩展。你能解释一下为什么这些插件有不同的名称和标签吗?它们之间是否存在差异所以它们需要不同的名称?我认为区分这些东西有点不自然,扩展有如此多的功能,它们与插件相比缺少什么?

3 个答案:

答案 0 :(得分:31)

区别在于历史和现实:

  • 插件是可编译的,可加载的模块,最初来自NPAPI;它们可以存在于浏览器的进程空间之外(这会导致各种有趣的互操作性问题和虚弱性)。其中最常见的例子是Flash和Java - 它们都要求一个子窗口(“视口”或“画布”(不是HTML5的canvas - 这是完全不同的东西:网页的原生部分))并以一种很大程度上独立于浏览器的方式自行处理。
  • 扩展程序主要使用JavaScript和XUL编写。由于扩展程序充当浏览器的一部分,因此它们具有比JS-in-a-pagepage更广泛的访问权限,但它们仍然受到一些限制。最常见的集成方式是挂钩FF功能的某些部分,然后扩展

因此,虽然插件和扩展可能出现相关,但它们在幕后是非常不同的技术。

答案 1 :(得分:11)

根据Mozilla的说法,插件可以帮助浏览器显示内容,例如播放媒体。扩展实际上为浏览器添加了新功能。

请参阅前几段: https://developer.mozilla.org/en/extensions

答案 2 :(得分:5)

一个是与firefox并排运行的程序。他们得到一个画布,当他们在画布上画画时,firefox渲染它。值得注意的例子:Flash,Java,QuakeLive。

另一个是在firefox的javascript解释器/编译器中运行的程序。它们更直接地扩展了firefox功能,因为它们可以访问firefox内部,而不仅仅是一个画布。此外,它们更便携,因为它们不需要操作系统的底层支持。

两种方法都有优点和缺点,它们可以解决不同的任务。