Chrome 屏幕截图仅在首先单击扩展程序时有效

2024-04-14

因此,我尝试编写一些代码,以便在按下我的网站上的按钮时可以截取页面的屏幕截图。代码可以工作,但唯一的问题是我必须先单击 chrome 扩展,然后才能单击按钮来截取屏幕截图。我猜这是因为活动选项卡未被调用。有任何想法吗?

这是错误消息:

运行 tabs.captureVisibleTab 时未选中的 runtime.lastError:“activeTab”权限无效,因为尚未调用此扩展。

清单.json

"permissions": [
    "tabs",
    "*://google.com/*"
  ],

背景.js

var id = 100;

// Listen for a click on the camera icon. On that click, take a screenshot.
function takeScreenshot() { 

  chrome.tabs.captureVisibleTab(null, function(screenshotUrl) {
    .....
}

chrome.extension.onRequest.addListener(function(request, sender) {
  takeScreenshot();
});

内容脚本1.js

contentScriptMessage = "Take a screenshot";

document.addEventListener("hello", function(data) { //When overlay is clicked
    chrome.extension.sendRequest({message: contentScriptMessage}); //call background script
})

当单击图像时(调用函数 go()),我从网页传递一条消息,如下所示:

  var go = function() {
          var event = document.createEvent('Event');
          event.initEvent('hello');
          document.dispatchEvent(event);
          }

运行 tabs.captureVisibleTab 时未选中的 runtime.lastError:“activeTab”权限无效,因为尚未调用此扩展。

此错误意味着,如果没有明确的用户手势(例如单击扩展程序),您的扩展程序没有足够的权限访问当前选项卡。我必须说这里的错误非常具有误导性,因为你没有activeTab您的清单中的许可。

文档提到你特别需要"<all_urls>"允许 https://developer.chrome.com/extensions/tabs#method-captureVisibleTab为了在没有显式调用的情况下使用此函数。看this bug https://code.google.com/p/chromium/issues/detail?id=339703#c8要求的解释。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Chrome 屏幕截图仅在首先单击扩展程序时有效 的相关文章

  • 无法显示由 Fine-uploader 上传到 Amazon s3 的图像

    我现在尝试设置fineuploader s3以显示在aws服务器上成功上传的文件的图像 如示例页面上所做的那样 http fineuploader com s3 demo http fineuploader com s3 demo 我 仍然
  • 请解释与 Google Chrome 扩展程序的后台通信

    我已经阅读并重新阅读了此页面 并运行了示例 http code google com chrome extensions background pages html http code google com chrome extension
  • jQuery 中的 Javascript .files[0] 属性

    jQuery 中是否有与此语句等效的语句 var value document getElementById id files 0 使用附加 files 0 的标准 jQuery 选择器似乎不起作用 并且我找不到与 files 等效的 jQ
  • Ext JS - 如何滚动到文本区域的底部

    这是我下面的代码 如何滚动到文本区域的底部 它一定是类似的东西 Ext getCmp output setScrollPosition Ext getCmp output getScrollHeight 这是我的文本区域代码 var myW
  • 如何通过 HTML 按钮播放声音

    我目前通过网站播放音乐的方法是通过 HTML 音频标签 不过我希望能够通过 HTML 按钮来播放它 该按钮应该能够在播放和停止之间切换音乐 我在 JSFiddle 创建了一个示例 但不知道如何实现它 有人可以告诉我如何使用我的 JSFidd
  • 计算Javascript中两次点击之间的时间

    我想用 javascript 计算属性的两次点击之间的时间 但我不知道如何 例如 a href click here a 如果用户单击多次 假设 5 秒内 我想显示警报 如果有帮助的话我正在使用 jQuery 我对 javascript 不
  • 在 BIRT 中输入参数后更新数据集查询

    在 BIRT 报告设计中传递参数后 如何更改或更新数据集的查询 详细说明 我有一个如下所示的查询 WHERE 该参数标记可以保存不同的值 在用户输入参数后 它看起来像这样 例如 WHERE column name 1 or WHERE co
  • Flask wtf.quick_form 运行一些 javascript 并设置表单变量

    我正在创建博客文章 到目前为止已经使用普通的 html 表单完成了 我所做的一个有趣的想法是运行 javascript onclick 并使用页面中的额外数据在表单中设置一个隐藏变量 这很好地传递到服务器并通过 request form 获
  • 响应式网格布局框架[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用模态表单 ajax 超出 HTMLFormElement.toString 的最大调用堆栈大小

    我想使用模态窗口中的 ajax 请求提交表单 单击此链接可打开该模式 a class btn btn primary i class fa fa edit i Write a review a 模态窗口 div class modal fa
  • AJAX:检查字符串是否为 JSON?

    我的 JavaScript 有时会在这一行崩溃 var json eval this responseText 当争论时会导致崩溃eval 不是 JSON 在进行此调用之前有什么方法可以检查字符串是否为 JSON 我不想使用框架 有什么方法
  • 选中复选框时提交表单

    有没有办法在选中复选框时提交表单
  • 是否可以使用打字稿映射类型来创建接口的非函数属性类型?

    所以我正在研究 Typescript 的映射类型 是否可以创建一个接口来包装另一种类型 从而从原始类型中删除函数 例如 interface Person name string age number speak void type Data
  • 如何在 e2e AngularJS 测试中进行文件上传?

    在我的一种观点中 我有一个文件上传控件 它支持通过拖放或单击按钮后打开的标准文件对话框上传文件 How to do this in my e2e tests1 1 Just one of the two options will be en
  • 有关于 PHP 中的 V8JS 的文档吗?

    有没有关于V8JS的文档 我是否只需要标准 PHP 或一些扩展即可使用 V8JS 我将非常感谢有关 PHP 中的 V8JS 的任何信息 要求 PHP 5 3 3 和 V8 库和标头安装在正确的路径中 Install http www php
  • Jquery,清除/清空 tbody 元素的所有内容?

    我认为这会相当简单 但似乎空方法无法清除我拥有的 tbody 如果有人知道执行此操作的正确方法 我将不胜感激 我只想删除 tbody 中包含的所有内容 到目前为止我正在尝试 tbodyid empty HTML table tbody tr
  • 加载另一个 JS 脚本后加载

    这是我的代码 very big js file lots of html stuff 问题是 这些是异步加载的 有没有办法等待第二个脚本直到第一个脚本加载 如果您使用 jQuery 有一个非常简单的方法可以通过获取脚本 https api
  • 如何获取使用 .map 渲染的第一个元素的 ref?

    我需要在几行中显示视频 卡片 的缩略图 并重点关注第一个缩略图 我使用嵌套地图进行了显示 该代码基本上迭代视频数组并返回多行视频 我们如何关注第一个渲染的元素 我认为我们需要获得第一个要聚焦的元素的引用 但是我们如何在这里设置 ref 并在
  • 如何更改订阅值?使用 rxJS

    我正在创建一个计时器 需要你的帮助 我刚刚学习 Angular 和 rxJS 对此我有一些疑问 我正在创建一个具有启动 停止 暂停 重置功能的计时器 并且 btn Reset 必须将我的计时器 暂停 到 300 毫秒 怎么做 D 我的启动定
  • 在 javascript 中使用 xPath 解析具有默认命名空间的 XML

    我需要创建一个 XML xPath 解析器 所有解析都必须在客户端进行 使用 JavaScript 我创建了一个 javascript 来执行此操作 在默认名称空间发挥作用之前 一切看起来都正常 我根本无法查询具有默认命名空间的 XML 我

随机推荐

  • List 或 IList [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 谁能向我解释为什么我想在 C 中使用 IList 而不是 List 相关问题 为什么暴露被认为是不好的List
  • Ruby 最大整数

    我需要能够确定 Ruby 中的系统最大整数 有人知道怎么做吗 或者是否可能 FIXNUM MAX 2 0 size 8 2 1 FIXNUM MIN 2 0 size 8 2
  • 自动更新 .net 应用程序

    到目前为止 我已经在 net 中编写了 2 个相当大型的应用程序 它们都需要一个更新工具 以便在我推出新代码时自动更新应用程序 我发现 企业应用程序块更新程序 对于我的需求来说有点过于复杂 并且在发布时我发现 单击一次 令人沮丧 我发现的最
  • 错误:unpack_from 需要缓冲区

    我正在使用 struct 来格式化固定分隔的 txt 文件 这是前两行 Sat Jan 3 18 15 05 2009 62e907b15cbf27d5425399ebf6f0fb50ebb88f18 4a5e1e4baab89f3a325
  • 如何将图像路径和名称上传到数据库 - Codeigniter

    我知道这个问题已经被问过好几次了 但是我发现的所有其他问题都与我想要的不同 我想将文件名和文件路径上传到名为 工厂图像 的表 这样做的最佳方法是什么 我的控制器功能 function do upload config upload path
  • 这是 IOC 的典型用例吗?

    我当前的应用程序允许用户通过一组管理屏幕定义自定义 Web 表单 它本质上是一个 EAV 类型的应用程序 因此 我无法对 HTML 或 ASP NET 标记进行硬编码来呈现给定页面 相反 UI 从服务层请求 Form 对象的实例 服务层又使
  • ASP.Net:混合身份验证 Azure AD/表单

    我有一个使用表单身份验证的旧版 Asp Net MVC Razor WebApp 现在 由于某些用户拥有 Azure AD 帐户 因此我添加了一个特殊的 AD 登录按钮以及常用代码以使其正常工作 app UseOpenIdConnectAu
  • 茉莉花量角器打字稿在其块中发生预期故障后继续执行

    我正在使用 Protractor jasmine 框架和打字稿 所以我在describe中有多个it块 所以在每个it块内有很多方法或期望条件我正在验证 因此 当前当其中一个期望失败时 整个块就会终止 所以即使在一步失败后我也想继续执行 下
  • 主题/样式 Angular 2 可重用组件库

    一般问题 我想要设计可重用的 Angular 组件的样式以匹配特定客户端项目的样式 我在一个单独的项目中维护可重用组件 并从中生成一个 npm 包 该包被发布到私有 NPM 存储库 Sinopia 然后安装到多个客户端项目中 当然 一般样式
  • 从 ng-repeat 内部调用 angularjs 属性指令

    我有一个表列对象的集合 我正在使用 ng repeat 对其进行迭代 我正在根据用户想要查看的列动态构建表 每个 TH 标签都调用一个 可排序 指令 如下所示 th Heading th 当自定义属性的值被硬编码时 如上所述 这很好 但是
  • 确定 Any.Type 是否可选

    我正在尝试确定给定类型是否t Any Type 是一个可选类型 我正在使用这个测试 t is Optional
  • XAML 设计器未加载

    我正在尝试开发适用于 Windows 10 的通用应用程序 但 XAML 设计器无法加载 我尝试重新安装 Visual Studio 但似乎没有任何效果 Error System Runtime InteropServices COMExc
  • 如何强制 python 子图具有相等的宽度和单独的高度(gridspec 不起作用)?

    I have the following figure Equal aspect ratio for each of the axes is a requirement I d love the widths to match betwee
  • 将 JSON 时间戳字符串转换为 pandas dataframe 中的 python 日期

    我有一个从 JSON 读取的 pandas 数据框 其中一个日期列是一种奇怪的时间戳格式 如下所示 日期 1405961743000 0100 如何将整列转换为 python 日期 我已经能够使用 datetime 手动将该日期转换为 py
  • Android ToggleButton 自定义样式未应用

    我跟着这个例子 http www mokasocial com 2011 07 sexily styled toggle buttons for android 用于将一些自定义主题应用于我的切换按钮 但是当我运行我的应用程序时 我看到通用
  • 如何在 AWS API 调用中使用“NextToken”

    我遇到了一个小问题 我真的很难理解它是如何工作的 我正在编写一个工具 它基本上执行描述组织来收集我们的 AWS 组织中的所有帐户 根据文档here https boto3 readthedocs io en latest reference
  • 解决IContainer

    从应用程序的类内部获取 Autofac 容器的建议方法是什么 Autofac 是否提供解析类上的 IContainer 属性 或者在构建容器后是否需要全局存储该容器 你需要IComponentContext or ILifetimeScop
  • OpenCV 从相机捕获 YUYV,无需 RGB 转换

    我尝试使用 openCV c 从 LI USB30 V024 立体相机捕获左右图像 而不自动将其转换为 RGB 相机输出 YUYV 格式的图像 我尝试使用 videoCapture set CV CAP PROP CONVERT RGB f
  • 带有 *ngIf 内部的模板,更改模型后不起作用

    Problem Angular 2 2版本之后 我注意到我的应用程序的某些组件存在问题 即更新数据后 视图中的数据错误 它显示了正确大小的列表 但仅包含第一项的数据 示范 我创建这个 Plunker 有一个简单的例子 http plnkr
  • Chrome 屏幕截图仅在首先单击扩展程序时有效

    因此 我尝试编写一些代码 以便在按下我的网站上的按钮时可以截取页面的屏幕截图 代码可以工作 但唯一的问题是我必须先单击 chrome 扩展 然后才能单击按钮来截取屏幕截图 我猜这是因为活动选项卡未被调用 有任何想法吗 这是错误消息 运行 t