插件,插件和扩展之间的确切区别是什么。 我已经阅读了很多关于这个并且困惑的, 例如,请参阅以下四个定义:
1-fire-fox说“附加组件是扩展,主题和插件的统称”(见https://support.mozilla.org/en-US/questions/790919)
2-www.Differencebetween.net说“插件和插件只是扩展......插件是指第三方软件(与某个程序交互)时通常使用的术语,如闪存球员...
3-维基百科(https://en.wikipedia.org/wiki/Plug-in_%28computing%29)表示插件已被弃用。
4 - 我在另一个网站上读到插件比附加组件大,它包含附加概念。
此外,我已阅读firefox add-on vs. extensions vs. plugins和http://colonelpanic.net/2010/08/browser-plugins-vs-extensions-the-difference/
中提供的答案但是我想了解这些差异,特别是在firebreath中,插件通过用户的同意自动执行,并且附加应该手动安装。另外我认为插件嵌入在htm页面中,而附加组件则是像fire-fox中的xpi一样的分离文件。
对于出现差异的这三个概念的任何准确,全面和精确的定义将不胜感激。
答案 0 :(得分:13)
一般经验法则:
当您谈论Web浏览器时,插件会讨论NPAPI或类似的插件,该插件特定于页面。 IE本身不支持“插件”,但它们具有可以填充类似功能的activex控件,尽管还有BHO(浏览器助手对象)ActiveX控件更类似于扩展。因此,我们(FireBreath团队)通常使用术语“插件”来表示像NPAPI插件一样的东西,术语“扩展”指的是像典型扩展(firefox XPI,Chrome CRX等)那样工作的东西。
插件只知道他们所在的页面;他们对浏览器或其他页面加载的内容一无所知。
插件已经导致许多安全问题,因为它们实际上运行本机代码。这导致了对他们的很多歧视 - 其中大部分是应得的。正因为如此,并且因为NPAPI是颈部的皇家痛苦(因此创建了FireBreath),大多数浏览器都试图逐步淘汰插件。除非没有其他方法可以解决您的问题,否则不应使用插件。
尽管如此,很多情况下他们是唯一的选择。
扩展程序是特定于浏览器的东西,它们在每个浏览器上有点不同,但往往能够更多地了解浏览器的整体状态;它们可能会自动添加到页面中,可以单独访问页面等。
附加组件更像是一个通用术语,用于表示许多不同的东西。它实际上意味着什么只取决于谁在说话,但是mozilla定义可能与任何一个一样好;无论上下文如何,它都可以为您的Web浏览器添加功能。
扩展一旦安装就会自动进行。插件以两种方式之一实例化:1)通过网页HTML中的<object>
或<embed>
标记,或2)因为它们被注册为浏览器的mimetype的处理程序不支持。
FireBreath处理插件。它与典型的浏览器扩展无关,只与插件有关。它是一个C ++框架,而不是一个javascript框架,它允许您添加可以在网页中使用的功能。通常,FireBreath插件在<object>
标记内使用。
正如您可能知道或不知道的那样,Chrome已经放弃了对NPAPI插件的支持(从版本45开始),Firefox已经从版本52开始支持(不包括版本52扩展支持版本,这将支持他们一年) 。 FireBreath 2.0现在被几家公司用于生产,并且可以生成“插件”(不是真正的插件,但工作方式相似),可以通过帮助扩展程序通过Native Messaging与Google Chrome和Firefox一起使用。主要限制是绘图;没有办法在本机消息传递中直接绘制浏览器(好吧,没有好办法,除了Windows之外的平台上根本没办法。)
最终,我们可能会在FireBreath 2.0中的本机消息传递桥上使用Canvas / WebGL添加对某些抽象的支持,但尚未完成。坦率地说,我不需要它,所以我没有费心去做。 FireBreath是一个开源框架,遗憾的是在过去的几年里没有得到用户的足够支持,所以文档有点过时,还有很多小事情没有完成。
Native Messaging方法依赖于扩展 - 我们这样做主要是为了让所有人感到困惑,当然,这也是因为这是允许我们通过Google Chrome或Firefox中的页面与FireBreath插件进行通信的唯一方法。 / p>
*(最后更新时间为2017年3月6日; Firefox 52计划明天发布)
希望有所帮助。另见: