在Chrome浏览器扩展中使用HTML和JavaScript很是容易,可是如何重用已有的非JavaScript遗留系统代码呢?答案是将NPAPI插件绑定到Chrome浏览器扩展,从而实如今Chrome浏览器扩展中经过JavaScript调用遗留系统代码。json
注意,出于安全性的考虑,NPAPI已经于2015年开始被Chrome浏览器全面禁用。请使用PPAPI(Pepper Plugin API)开发新插件,详情请关注本文的后续内容。浏览器
下面介绍的内容仅供参考。安全
因为NPAPI插件中的代码拥有各类权限,Chrome浏览器没法设置任何限制,因此对于来自NPAPI插件的输入参数必选格外当心。因为NPAPI的安全风险,在将包含NPAPI插件的Chrome浏览器扩展发布到Chrome Web Store时,须要人工检查。app
要在Chrome浏览器扩展中使用NPAPI插件,首先要在manifest.json文件中声明NPAPI插件的位置等信息以下:插件
{ip
...开发
"plugins": [get
{ "path": "extension_plugin.dll" }//相对于manifest.json文件的相对路径io
{ "public": true }//Web页面或content scripts是否可访问该NPAPI插件,console
//默认false,表示只有Chrome浏览器扩展才可以访问
],
...
}
其次,须要在Chrome浏览器扩展中(public=false)或任何Web页面或content scripts中(public=true)的HTML文件中经过MIME类型加载NPAPI插件,示例以下:
<embed type="application/x-my-extension" id="pluginId">
<script>
var plugin = document.getElementById("pluginId");
var result = plugin.myPluginMethod(); //调用NPAPI插件中的方法
console.log("my plugin returned: " + result);
</script>
注意,替换上述页面中的x-my-extension为合适的MIME类型。