【问题标题】:Showing a progress dialog for a Chrome extension that interacts with an NPAPI plugin显示与 NPAPI 插件交互的 Chrome 扩展程序的进度对话框
【发布时间】:2012-03-23 08:33:08
【问题描述】:
我正在为 Google Chrome 编写一个将页面转换为 PDF 文件的扩展程序。用 Javascript 编写的扩展程序提取当前页面的 DOM,并将其传递给 NPAPI DLL,在那里进行转换。我想向用户显示一个进度对话框,该对话框在转换开始后立即出现,然后在转换结束并打开 PDF 文件进行查看时消失,或显示状态完成对话框。我是使用 Javascript 的新手。我应该怎么做才能完成上述任务?
【问题讨论】:
标签:
javascript
google-chrome
google-chrome-extension
npapi
【解决方案1】:
基本思路是:
- 在插件上注册一个事件处理程序以接收完成事件(插件必须为此实现(脚本)函数
addEventListener)
- 调用插件告诉它开始转换
- 插件为转换启动一个后台工作线程(因为您不能阻塞主线程)
- 显示进度对话框覆盖
- 插件完成后会触发完成事件(注意:NPAPI 调用必须发生在主线程上,
NPN_PluginThreadAsyncCall 对此有帮助)
- JS 现在可以关闭进度对话框/显示完成对话框/...