使用 Chrome 网上应用店内联安装 ( https://developers.google.com/chrome/web-store/docs/inline_installation ) 可以指定在chrome.webstore.install()
成功安装扩展程序时执行的回调。
通过一些非常繁琐的调试,我了解到在执行回调时不一定 100% 安装扩展 - 可能尚未加载背景或内容脚本尚不可用。
在我的特殊情况下,问题以这种方式出现:
chrome.webstore.install()
用户单击绑定到onclick
事件的安装按钮。- 成功回调注入 iFrame。
- 为 iFrame 定义内容脚本并注入以完成一些收尾工作
- 内容脚本返回完成的安装对话框。
第3步是问题。有时 iFrame 将在内容脚本完全加载之前被注入,因此不会注入任何脚本(内容脚本仅注入到新创建的 iFrame 中,而不是在安装/启用扩展时已经存在的 iFrame)。
我知道有可能的解决方法,例如让扩展本身注入 iFrame 或 simple setTimeout()
,但为了帮助其他人,我认为值得提出这个问题:
chrome.webstore.install()
当回调不能确保扩展时,如何确定扩展已 100% 安装?
使用检查用户是否安装了某个扩展中描述的著名<img>
加载方法不能可靠地工作(对于那些认为这是一个解决方案的人)。