Google Chrome扩展(Extensions)和插件(plugins)的区别

当我学会了Chrome的扩展开发时,我开始沾沾自喜了,不过如此简单:html和js轻松搞定。然而当我想要实现我自己的功能,希望通过js调用本地二进制文件时,却发现如何也不能成功。

然后便发现我的无知,前两篇写的文章是关于插Chrome插件开发的,实际上只是扩展(Extension)开发。于是百度之,来到知乎:

"扩展"和"插件",其实都是软件组件的一种形式,Chrome 只不过是把两种类型的组件分别给与了专有名称,一个叫"扩展",另一个叫"插件"。
  • 扩展(Extension),指的是通过调用 Chrome 提供的 Chrome API 来扩展浏览器功能的一种组件,工作在浏览器层面,使用 HTML + Javascript 语言开发[*]。比如著名的 Adblock plus。
  • 插件(Plug-in),指的是通过调用 Webkit 内核 NPAPI 来扩展内核功能的一种组件,工作在内核层面,理论上可以用任何一种生成本地二进制程序的语言开发,比如 C/C++、Delphi 等。比如Flash player 插件,就属于这种类型。一般在网页中用 <object> 或者 <embed> 标签声明的部分,就要靠插件来渲染。
至于哪种功能多的问题,这个不能比较,各有侧重。如果你想实现一个自动统计你上过的网站以及各自时间的功能,就要用扩展技术;如果你要实现一个让你的浏览器可以渲染 AutoCAD 文件的功能,就要用插件技术。

注: * Chrome 扩展本身也支持包含 Plug-in 模块,这部分可以使用 C/C++ 等语言开发。比如 web QQ 的截图扩展,就是用了这项功能。

NPAPI 插件

使用HTML和JavaScript开发新扩展是十分容易的事情,不过如果你想在扩展中重用已经开发完成的代码和功能,你可以通过使用NPAPI插件到达目的。NPAPI插件使JavaScript代码能够调用本地二进制代码。

警告:NPAPI 是重型武器,当别的方法无法到达你的目的时,才建议使用。

运行在NPAPI插件中的代码拥有当前用户的全部权限,不能利用Google Chrome 的沙箱技术和其他安全防护技术。 在处理不可信任的输入, 如content scripts和XMLHttpRequest 时,你必须格外小心。

NPAPI 插件的开发请移步:https://developer.mozilla.org/en-US/Add-ons/Plugins

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值