问题标签 [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.
javascript - 在执行某些代码之前是否可以隐藏弹出窗口?
所以,我有这个扩展,当点击图标时它应该在页面上显示一个自定义弹出窗口,我的意思是“自定义弹出窗口”,我的意思是,<iframe>
在页面 dom 本身中呈现并注入的东西,而不是“传统扩展”弹出窗口”,但问题是在某些页面中我无法注入内容脚本,在这些情况下,我想在“传统扩展弹出窗口”中显示内容。
我让它工作了,但这不是最优雅的解决方案,这就是我的做法
中popup.html
没有内容,<body>
它导入了一个脚本。
此脚本尝试向页面中运行的内容脚本发送消息,如果消息成功,弹出窗口将自行关闭,内容脚本将处理页面上的渲染
如果无法发送消息,则它会尝试在页面上注入脚本,如果注入有效,则再次发送消息,如果没有,则我们位于不允许注入的页面上,即在这种情况下,我们只是将内容渲染到弹出窗口的主体(我在这里使用 Svelte)
问题是,大多数时候,这个过程基本上是瞬时的,你只需点击图标,自定义弹出窗口就会出现,但有时,它需要更长的时间(可能 1 秒?),在那个时候,你可以查看其最小尺寸上的“传统弹出窗口”(可能是 32x32 左右?这是一个非常小的正方形)
我想要的是隐藏弹出窗口,直到我的代码“决定”是否可以在页面中注入内容。
我尝试过但不起作用的方法:
- 将 and/or 标签的宽度和/或高度设置为 0px
- 设置 display:none 和/或 visibility: hidden on and/or tags
有什么办法可以做我正在寻找的吗?
编辑:这是一张图片,因此您可以更好地理解我在说什么,这是“正方形”:
有时你甚至看不到它,有时它只是闪烁,有时需要更长的时间才能消失,这取决于我认为的电脑
google-chrome-extension - 如果多个 content_script 条目对页面有效,则 chrome 扩展中的脚本注入顺序是什么?
我知道在单个content_scripts
条目中,脚本的注入顺序与它们在js
数组中出现的顺序相同,但是数组不同条目之间的注入顺序是什么content_scripts
?这是一个例子:
在本例中,abc.js
和都xyz.js
对 有效www.google.com
。我们可以假设它们被注入的顺序吗?我在 Google 或 Mozilla 文档中找不到任何此类保证。任何指针都受到高度赞赏。
google-chrome-extension - Chrome 扩展程序清单中的默认图标
我的清单中有这段代码:
直到今天它工作正常,现在我收到“重复密钥”错误。我知道 default_icon 有两个条目——一个用于声明单个图标的旧方式,另一个用于声明特定尺寸的新方式——但是直到现在上传新包时它没有引起问题。有什么改变吗?如果我删除第一个声明,那会导致什么问题?
更新:我现在收到一个错误,我现在可以上传 zip 文件,但发布失败并出现“内部发布错误”。当我第一次上传 zip 文件时,我确实收到了警告“清单内容无效”,但没有其他详细信息。所有这一切直到最近才起作用。这是我的清单:
javascript - 如何使用自定义时间的 chrome.history.addUrl
如何使用自定义时间的 chrome.history.addUrl?所以现在 chrome.history.addUrl 添加了一个带有当前时间的 URL,那么我该如何更改它以便它可以将 URL 添加到不同的时间呢?
我可以改变chrome的时间吗?或更改 chrome 保存到数据库的时间?
基本上我正在尝试生成自定义 chrome 浏览器历史记录。
google-chrome-extension - Manifest v2 将在开发人员模式下支持多长时间?
他们在这里说 2023 年 6 月 Manifest v2 扩展程序将不再在 Chrome 中运行:https ://developer.chrome.com/docs/extensions/mv3/mv2-sunset/
这是否也意味着无法在开发者模式下加载 manifest v2 扩展?是否有任何官方链接或声明?
google-chrome-extension - 使用 Chrome 扩展更改 Firebase 目标会导致 auth/invalid-credential
我之前已经设置并遵循了这些步骤,并让它工作: https ://firebaseopensource.com/projects/firebase/quickstart-js/auth/chromextension/readme/#license
但是克隆这个扩展,但使用不同的Extension ID
、不同的firebase instance
和OAuth/key
设置,我尝试至少 3 次单独执行这些步骤,但每次在最后一步失败时,登录(虽然同意屏幕有效)
- 上传一个新的虚拟扩展(
key
manifest.json 中没有字段)(但它与工作的代码完全相同) - 得到
Chrome Extension ID
, 和Public Key
, 没问题 OAuth Client ID
使用已配置的同意屏幕创建Extension ID
,没问题,屏幕显示,我可以点击通过- 添加
OAuth
&Public Key
到manifest.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
我的结论
即使使用不同的凭据,如何设置也必须有所改变
html - 在 chrome 扩展中使用 iframe 进行多个视图的缺陷
我一直在研究 chrome 扩展,它有多个视图,并且使代码更粗,更难处理。因此,在一些研究中,使用 iframe 作为解决方案之一,但很多人并不喜欢它。
那么,你能告诉我一些我可能错过的东西或任何其他解决方案吗?
javascript - 有没有办法使用 chrome 扩展或我可以使用的任何漂亮的 hack 来读取位于扩展文件系统之外的本地文件内容:)
我正在开发一个供我个人使用的扩展,我无意分发它,因为它是一个本地扩展,我想知道有没有办法读取位于扩展文件系统之外的本地文件内容。或任何我可以用来读取本地文件内容的漂亮技巧。没有兴趣启动任何类型的服务器:(