1

captureVisibleTab [docs]在我的 Google Chrome 扩展程序中似乎对我不起作用,我一直试图让它在基于浏览器操作的扩展程序中运行,但undefined每次都返回图像。然后我下载了谷歌创建的示例,这似乎也不起作用,返回undefinedor white.png(一个空白的白色图像)作为 image src

我已经尝试在两个项目"tabs", "<all_urls>"的文件中设置权限。manifest.json我有谷歌浏览器 37。

我一直在尝试寻找答案,但我没有看到任何可靠的信息,是否存在错误,是否有解决方法?如果没有修复,还有其他选择吗?

谢谢,克里斯蒂安。

编辑:我可能应该让这部分更清楚。我下载了 Google 示例,安装了它,在 code.google.com 上运行了扩展程序,然后返回了一个空白图像,请参见屏幕截图

4

1 回答 1

2

这里有两个错误在起作用:

  1. chrome.tabs.captureVisibleTab需要<all_urls>许可 ( crbug.com/339703 )。
  2. chrome.tabs.onUpdated永远不会为新打开的扩展选项卡 ( crbug.com/411225 ) 中的扩展页面触发。

第一个错误的解决方法是<all_urls>在清单文件的权限部分中声明;第二个错误的解决方法是不使用chrome.tabs.onUpdated事件来检测选项卡是否更新,而是使用消息传递chrome.runtime.getBackgroundPage在新打开的扩展页面中获取屏幕截图的数据 URL。(请注意,您不能使用 webNavigation 代替选项卡 API 来检测新选项卡,因为chrome-extension:-URL 对 webNavigation API 是隐藏的)。

于 2014-09-04T10:25:28.057 回答