在C++中使用NPAPI开发Chrome扩展
Developing Chrome Extensions Using NPAPI in C++
我想使用NPAPI在C++中开发一个简单的Chrome扩展,它可以将当前页面的HTML内容转储到文件中。我在开发插件/扩展方面没有太多专业知识。我该如何开始?
1-创建扩展。。。http://code.google.com/chrome/extensions/getstarted.html
2-创建一个NPAPI插件。。。http://colonelpanic.net/2009/03/building-a-firefox-plugin-part-one/
3-在你的扩展清单上添加插件。。。
"plugins": [
{ "path": "your_npapi_plugin.dll" }
],
4-在您的扩展后台页面上创建插件
<script>
var plugin = document.getElementById("MyNPAPIPluginId");
...
</script>
5-创建一个javascript,用作在每个页面上注入的内容脚本。在该脚本上,与您的npapi可脚本化对象进行通信,并完成您想要做的工作。
如何获取MyNPAPIPluginId的值?我所拥有的只是DLL的名称?
当你添加插件的标签时,你会在后台页面上放置id
<embed type="application/my-plugin-mimetype" id="MyNPAPIPluginId">
在Windows上,在DLL的资源文件上添加MIMEType,添加一个带有以下内容的条目:
VALUE "MIMEType", "application/my-plugin-mimetype"
这里有一个插件可以帮助您
http://code.google.com/p/npapi-file-io/
…消息来源也在那里。这个插件将允许你在一个文件中写入一个字符串(你的html)以及其他一些好东西。不幸的是,Windows和Linux
然后你所需要做的就是写一个脚本来转储你想要的东西。
正如smorgan在评论中指出的那样,这类插件有可能相当危险
因此,当您将插件添加到清单时,请确保将公共属性设置为false
http://code.google.com/chrome/extensions/npapi.html
"plugins": [
{ "path": "plugin.dll", "public": false }
]
在未来(Chrome 18),您应该使用清单版本2…
http://code.google.com/chrome/extensions/trunk/manifestVersion.html
此外,我认为您希望在没有任何用户输入的情况下保存文件。如果这不是真的,并且每次都有一个对话框来选择保存文件的位置是可以接受的,那么这可以在不使用插件的情况下完成。
- 如何用RISC-V GD32VF103CBT6开发板卸载精确的ADC过采样
- 我正在开发服务器,ip作为参数传递不起作用
- 如何使用 GPS 和指南针开发点移动算法
- AWS IoT 开发工具包:通过 TCP 端口 443 使用 MQTT
- 使用AAR的虚幻安卓开发
- 为什么开发人员将C / C ++用于嵌入式系统,而不是像Python这样的高级语言与C相比?
- Chrome GN 例外已禁用
- 开发C++/地图中的控制台角色扮演游戏
- 测试驱动开发 c++:如何将对象添加到向量中,将歌曲添加到播放列表并对其进行测试
- 使用 AWS C++ 开发工具包分段上传 S3
- 如何在可视化代码中生成用于 c++ 开发的调试器?
- 与 AWS 开发工具包的链接问题
- CMake 工具链文件:嵌入式开发的适当值"CMAKE_SYSTEM_PROCESSOR"
- 错误:#include 在开发C++中嵌套得太深
- 使用代码在 AWS 开发工具包C++控制台应用程序上设置凭证
- 可视化配置 VS 代码以进行 C++ 编程和开发
- GCP 或 AWS 是否支持 C++ 和 GUI 应用程序开发?
- C++如何告诉开发人员在设计模板(如Java接口)时实现某事
- 在C++中使用NPAPI开发Chrome扩展
- 新手chrome插件开发人员需要帮助开始使用NPAPI