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

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 投票
1 回答
33 浏览

javascript - 在执行某些代码之前是否可以隐藏弹出窗口?

所以,我有这个扩展,当点击图标时它应该在页面上显示一个自定义弹出窗口,我的意思是“自定义弹出窗口”,我的意思是,<iframe>在页面 dom 本身中呈现并注入的东西,而不是“传统扩展”弹出窗口”,但问题是在某些页面中我无法注入内容脚本,在这些情况下,我想在“传统扩展弹出窗口”中显示内容。

我让它工作了,但这不是最优雅的解决方案,这就是我的做法

popup.html没有内容,<body>它导入了一个脚本。

此脚本尝试向页面中运行的内容脚本发送消息,如果消息成功,弹出窗口将自行关闭,内容脚本将处理页面上的渲染

如果无法发送消息,则它会尝试在页面上注入脚本,如果注入有效,则再次发送消息,如果没有,则我们位于不允许注入的页面上,即在这种情况下,我们只是将内容渲染到弹出窗口的主体(我在这里使用 Svelte)

问题是,大多数时候,这个过程基本上是瞬时的,你只需点击图标,自定义弹出窗口就会出现,但有时,它需要更长的时间(可能 1 秒?),在那个时候,你可以查看其最小尺寸上的“传统弹出窗口”(可能是 32x32 左右?这是一个非常小的正方形)

我想要的是隐藏弹出窗口,直到我的代码“决定”是否可以在页面中注入内容。

我尝试过但不起作用的方法:

  • 将 and/or 标签的宽度和/或高度设置为 0px
  • 设置 display:none 和/或 visibility: hidden on and/or tags

有什么办法可以做我正在寻找的吗?

编辑:这是一张图片,因此您可以更好地理解我在说什么,这是“正方形”: 例子

有时你甚至看不到它,有时它只是闪烁,有时需要更长的时间才能消失,这取决于我认为的电脑

0 投票
0 回答
10 浏览

google-chrome-extension - 如果多个 content_script 条目对页面有效,则 chrome 扩展中的脚本注入顺序是什么?

我知道在单个content_scripts条目中,脚本的注入顺序与它们在js数组中出现的顺序相同,但是数组不同条目之间的注入顺序是什么content_scripts?这是一个例子:

在本例中,abc.js和都xyz.js对 有效www.google.com。我们可以假设它们被注入的顺序吗?我在 Google 或 Mozilla 文档中找不到任何此类保证。任何指针都受到高度赞赏。

0 投票
1 回答
105 浏览

google-chrome-extension - Chrome 扩展程序清单中的默认图标

我的清单中有这段代码:

直到今天它工作正常,现在我收到“重复密钥”错误。我知道 default_icon 有两个条目——一个用于声明单个图标的旧方式,另一个用于声明特定尺寸的新方式——但是直到现在上传新包时它没有引起问题。有什么改变吗?如果我删除第一个声明,那会导致什么问题?

更新:我现在收到一个错误,我现在可以上传 zip 文件,但发布失败并出现“内部发布错误”。当我第一次上传 zip 文件时,我确实收到了警告“清单内容无效”,但没有其他详细信息。所有这一切直到最近才起作用。这是我的清单:

0 投票
0 回答
23 浏览

javascript - 如何使用自定义时间的 chrome.history.addUrl

如何使用自定义时间的 chrome.history.addUrl?所以现在 chrome.history.addUrl 添加了一个带有当前时间的 URL,那么我该如何更改它以便它可以将 URL 添加到不同的时间呢?

我可以改变chrome的时间吗?或更改 chrome 保存到数据库的时间?

基本上我正在尝试生成自定义 chrome 浏览器历史记录。

0 投票
1 回答
26 浏览

google-chrome-extension - Manifest v2 将在开发人员模式下支持多长时间?

他们在这里说 2023 年 6 月 Manifest v2 扩展程序将不再在 Chrome 中运行:https ://developer.chrome.com/docs/extensions/mv3/mv2-sunset/

这是否也意味着无法在开发者模式下加载 manifest v2 扩展?是否有任何官方链接或声明?

0 投票
1 回答
35 浏览

google-chrome-extension - 使用 Chrome 扩展更改 Firebase 目标会导致 auth/invalid-credential

我之前已经设置并遵循了这些步骤,并让它工作: https ://firebaseopensource.com/projects/firebase/quickstart-js/auth/chromextension/readme/#license

但是克隆这个扩展,但使用不同的Extension ID、不同的firebase instanceOAuth/key设置,我尝试至少 3 次单独执行这些步骤,但每次在最后一步失败时,登录(虽然同意屏幕有效)

  • 上传一个新的虚拟扩展(keymanifest.json 中没有字段)(但它与工作的代码完全相同)
  • 得到Chrome Extension ID, 和Public Key, 没问题
  • OAuth Client ID使用已配置的同意屏幕创建Extension ID,没问题,屏幕显示,我可以点击通过
  • 添加OAuth&Public Keymanifest.json
  • 再做一个OAuth Client ID?(我认为这是一个重复的步骤,因为Client ID我应该使用哪个?并且 afaik 白名单是可选的)
  • 用于chrome.identity获取 OAuth 令牌:

注意:此代码与另一个 extensionID/OAuth/key 一起使用,因此代码本身不会是问题。

它们之间没有太大的变化,实际上是 ExtensionID、OAuth 客户端 ID url 和公钥。

我已经按照这些步骤进行了 3 次,但每次我收到错误时都无济于事auth/invalid-credential。我确实得到了一个token,但该令牌不会进行身份验证。如何找出这是为什么?

它试图发布到这个地址,并返回错误400

错误:INVALID_IDP_RESPONSE : Invalid Idp Response: access_token audience is not for this project

我的结论

即使使用不同的凭据,如何设置也必须有所改变

0 投票
0 回答
38 浏览

chrome-extension-manifest-v3 - 无法在 Chrome 扩展程序中将后台脚本迁移到 v3

我尝试将清单从 v2 迁移到 v3,但后台脚本失败。我得到一个错误unexpected token。我认为我的语法是正确的。我做错了什么?如何使用多个后台脚本迁移此设置?

清单 v2

清单 v3

如果我尝试使用单个背景文件,它也无法注册,如屏幕截图所示: 在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

0 投票
0 回答
23 浏览

google-chrome-extension - Google chrome 扩展 - 从重定向 url 获取代码后,主窗口正在关闭

我正在尝试在 google chrome 扩展中开发登录 OAuth 系统,尽管如此,当我尝试从回调中获取响应时,主窗口已经消失。

// 背景.js

完整代码

0 投票
0 回答
5 浏览

html - 在 chrome 扩展中使用 iframe 进行多个视图的缺陷

我一直在研究 chrome 扩展,它有多个视图,并且使代码更粗,更难处理。因此,在一些研究中,使用 iframe 作为解决方案之一,但很多人并不喜欢它。

那么,你能告诉我一些我可能错过的东西或任何其他解决方案吗?

0 投票
0 回答
13 浏览

javascript - 有没有办法使用 chrome 扩展或我可以使用的任何漂亮的 hack 来读取位于扩展文件系统之外的本地文件内容:)

我正在开发一个供我个人使用的扩展,我无意分发它,因为它是一个本地扩展,我想知道有没有办法读取位于扩展文件系统之外的本地文件内容。或任何我可以用来读取本地文件内容的漂亮技巧。没有兴趣启动任何类型的服务器:(