captureVisibleTab
[docs]在我的 Google Chrome 扩展程序中似乎不适合我,我一直试图让它在基于浏览器操作的扩展程序中运行,但返回的图像是 undefined
每次。然后我下载了the example created by Google这似乎也不起作用,返回 undefined
或 white.png
(空白的白色图像)作为图像 src
.
我试过将权限设置为 "tabs", "<all_urls>"
在manifest.json
两个项目的文件。我有谷歌浏览器 37。
我一直在努力寻找答案,但我没有看到任何可靠的信息,是否存在错误,是否有修复程序?如果没有解决办法,还有其他选择吗?
谢谢,克里斯蒂安。
编辑:我应该让这部分更清楚。我下载了 Google 示例,安装它,在 code.google.com 上运行扩展程序,返回空白图像 see screenshot .
最佳答案
这里有两个错误:
-
chrome.tabs.captureVisibleTab
需要<all_urls>
许可(crbug.com/339703)。 -
chrome.tabs.onUpdated
在新打开的扩展选项卡 (crbug.com/411225) 中永远不会为扩展页面触发。
第一个错误的解决方法是声明 <all_urls>
在 list 文件的权限部分;第二个错误的解决方法是不使用 chrome.tabs.onUpdated
事件来检测选项卡是否更新,但使用 message passing或 chrome.runtime.getBackgroundPage
在新打开的扩展页面中获取屏幕截图的数据 URL。 (请注意,您不能使用 webNavigation 而不是 tabs API 来检测新标签,因为 chrome-extension:-URLs are hidden from the webNavigation API)。
关于javascript - captureVisibleTab 返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25652485/