问题标签 [chrome-extension-manifest-v3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
166 浏览

javascript - 在执行脚本中获取函数的返回值

我有一个从清单 v2 移动到 v3 的扩展。在清单 v3 上,executeScript 已更改。简单地说,在 V2 中,我有一个类似的代码;

现在我已将其更改为;

但我无法阅读选择。它总是未定义的。我怎样才能做到这一点?

0 投票
1 回答
360 浏览

javascript - 服务人员不在 chrome-extension 的导航器中

我正在开发带有manifest v3的 chrome 扩展。我尝试使用以下代码在许多资源中注册服务工作者,我发现

但是在使用下面的代码之后,service worker 不工作,background.js文件也因此不工作。

范围网址:

serviceWorker.js

清单.json

任何人请帮助我并指导我是否错过了 serviceWorker.js 或 manifest.json 中的任何内容?或对此有任何错误?请帮助我使 serviceWorker.js 和 background.js 工作。

注意:使用上面的代码,我在 serviceWorker.js 上没有收到任何错误,而且它也不起作用。

0 投票
0 回答
88 浏览

import - chrome 扩展 v3 - 将具有依赖项的脚本导入 background.js

我正在使用清单 v3 制作 chrome 扩展。

我正在尝试将我的脚本文件导入到 background.js 中。

我正在使用这里描述的第二种方法

因此,我在 manifest.json 中有这个:

在没有其他依赖项的简单脚本上:

在 myscript.js 中:

在我的 background.js 中:

在这种简单的情况下,它工作正常。

但是,如果我尝试从 myscript2.js 在 myscript.js 中添加另一个依赖项,如下所示:

myscript2.js:

和 myscript.js(与 myscript2 相同的目录):

在这种情况下,它不再起作用,并且我收到错误“服务工作者注册失败”。

我应该怎么做才能解决这个问题?

0 投票
1 回答
101 浏览

google-chrome-extension - 在 ElectronJS 中加载 Chrome 扩展

谁能告诉我如何通过 ElectronJS 中的 Chrome 扩展注入我的 js?我有一个适用于 Chrome 的扩展程序(清单 v2)。它加载到电子中(我在 await loadExtension() 调用之后看到了一个对象),但没有插入它的代码(我没有看到标记更改,并且在开发工具控制台中没有任何内容)

如果您可以提供一个可以工作的示例扩展(也可能是 ElectronJS 中的代码),那将是非常完美的!:)

0 投票
0 回答
122 浏览

javascript - 使用 tabcapture chrome 扩展 api

我正在尝试记录用户屏幕以创建 gif,尝试使用 chrome API captureTab但没有成功,我尝试从未定义的内容脚本启动 API,然后从带有我的扩展代码的 iframe 启动 API,并得到异常 Unchecked runtime。 lastError:错误启动选项卡捕获 我正在使用清单版本 3

通过阅读文档,捕获 API 仅适用于前台脚本,所以也许我不明白,

我的清单

也是启动 iframe 的代码

最后开始捕获

我尝试了从后台运行 API 到弹出窗口的所有方法,但似乎没有任何效果

谢谢您的帮助

0 投票
1 回答
454 浏览

javascript - 使用 Manifest V3 将 FormData/File 对象从内容脚本传递到 chrome 扩展中的后台脚本

我正在构建一个 chrome 扩展,在其中我从用户那里获取一个文件作为输入,并将其传递给我的 background.js(在清单 v3 的情况下为服务工作者)以将其保存到我的后端。由于内容脚本阻止了跨域请求,因此我必须将其传递给我background.js并使用 FETCH API 来保存文件。当我将FormDataorFile对象传递给chrome.runtime.sendMessageAPI 时,它使用 JSON 序列化,而我收到的background.js是一个空对象。请参阅以下代码段。

即使我们FormData从内容脚本传递,也会发生同样的情况。

我参考了旧 StackOverflow 问题建议的多种解决方案,使用URL.createObjectURL(myfile);URL 并将其传递给我background.js并获取相同的文件。而 FETCH API 不支持获取 blob URL,并且这里XMLHttpRequest推荐的 service worker 也不支持。有人可以帮我解决这个问题吗?我被这种行为挡住了。

0 投票
0 回答
503 浏览

google-chrome-extension - chrome 扩展清单版本 3 中的内容安全策略问题

我的 chrome 扩展清单版本 2 中的内容安全策略值为:

"content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'"

现在,我需要迁移到清单版本 3。为此,我按以下方式编写了内容安全策略值:

"content_security_policy": { "extension_pages": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'", "sandbox": "..." } 但是当我尝试运行扩展时,清单没有加载,我收到以下错误

“content_security_policy.extension_pages”:指令“script-src”中的不安全 CSP 值“https://ssl.google-analytics.com”。

有人可以指导我如何解决这个问题吗?

感谢您提前提供任何帮助。

0 投票
3 回答
267 浏览

google-chrome-extension - Chrome 扩展中的内容安全“拒绝加载媒体”错误(清单 v3)

我有一个 Chrome 扩展程序,单击它会在页面上插入视频:

在 Twitter.com 上使用扩展程序时,视频不会加载到页面上,并且在控制台中我看到此错误:

Manifest.json(version3)中,我尝试了以下几个版本,但没有任何效果。有谁知道如何解决此错误以便可以加载视频?非常感谢任何和所有帮助 - 谢谢。

0 投票
1 回答
282 浏览

google-chrome-extension - Not able to import scripts inside service_worker js in chrome extension manifest version 3

I had multiple background scripts in chrome extension manifest version 2. Now I need to migrate to manifest version 3 and therefore need to make necessary changes.

According to documentation, I have kept only one file in service_worker as shown below:

and in the background.js I wrote the following javascript statement:

The code in google-analytics.js has the following code:

Also, inside background.js I am using localStorage.

When I try to load the extension, it gives me the following errors:

and many other errors also.

It seems like it is not able to import the javaScript files properly.

It might be alot to ask in a single question. But, can someone please help me where I am putting wrong code and if someone please help me with the solution.

Thanks in advance.

0 投票
0 回答
53 浏览

javascript - 无法让 Chrome 扩展程序通过 XML 请求运行其 PHP 文件

我正在开发一个 Chrome 扩展程序,它只是从某个网页的标记中解析出一些数据,然后将该数据发送到一个 PHP 文件,该文件也是我的扩展程序的一部分。虽然我的 Javascript 没有任何错误,但在我看来 PHP 文件实际上并没有被执行,我什至不知道如何调试。

根据对许多教程和 SO 搜索的回顾,我的方法是让我的 Javascript 文件向 PHP 文件发送 XML 请求,该文件将与我的 MySQL 数据库(通过 freesqldatabase.com 托管)进行对话

我的解压加载文件结构是:

  • my_php_file.php
  • 内容.js
  • jquery-3.6.0.min.js
  • 清单.json

我的清单看起来像这样(为清楚起见,对一些值进行了编辑):

content.js 看起来像这样(再次,为了清楚起见,修改了一些变量名):

my_php_file.php 看起来像这样(为了清楚起见,再次编辑/修改):

当我在浏览器中打开相关页面时,Javascript 文件的解析部分运行良好(控制台的日志确认了这一点),我什至得到了成功的结果(XML 请求的 readyState 为 4,状态为 200),但我echo没有似乎出现在任何地方,我的数据库表仍然是空的。我会尝试以某种方式调试 PHP,但似乎它实际上并没有被执行?

让我的 PHP 脚本成为我的扩展的一部分是不是可以?我是否需要将它托管在适当的服务器上(即使只是localhost)?

这是我第一次开发 Chrome 扩展程序(以及编码 Javascript 和 PHP,就此而言),我担心我犯了一些非常基本的错误,以至于尽管我进行了搜索,但我无法找到它的解决方案