javascript - captureVisibleTab 返回未定义

标签 javascript google-chrome google-chrome-extension webpage-screenshot

captureVisibleTab [docs]在我的 Google Chrome 扩展程序中似乎不适合我,我一直试图让它在基于浏览器操作的扩展程序中运行,但返回的图像是 undefined每次。然后我下载了the example created by Google这似乎也不起作用,返回 undefinedwhite.png (空白的白色图像)作为图像 src .

我试过将权限设置为 "tabs", "<all_urls>"manifest.json两个项目的文件。我有谷歌浏览器 37。

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

谢谢,克里斯蒂安。

编辑:我应该让这部分更清楚。我下载了 Google 示例,安装它,在 code.google.com 上运行扩展程序,返回空白图像 see screenshot .

最佳答案

这里有两个错误:

  1. chrome.tabs.captureVisibleTab需要 <all_urls>许可(crbug.com/339703)。
  2. 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/

相关文章:

javascript - 改变单个单词的颜色?

javascript - 如何检查字符串是否是 anchor 标记?

javascript - 弹出html页面没有返回值?

javascript - 谷歌浏览器 - 关注最近编辑的片段窗口

javascript - 大型 HTML 表格在 Chrome 中滚动缓慢

google-chrome - Keycloak:使用新的 Chrome SameSite/Secure cookie 强制执行 token 请求中缺少 session cookie

javascript - 如何在 Chrome 插件/其他来源中使用 CSRF token

javascript - 我收到一个有效函数的 422 错误

javascript - 与 Angular 合作的第一天;我究竟做错了什么?

javascript - 单击扩展鼠标打开本地 .html