问题标签 [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.
google-chrome-extension - 谷歌浏览器扩展清单 v3 中的弹出设置在哪里
我正在使用清单 v3 开发 google chrome 扩展,我从这里阅读了清单文档,但发现不包含弹出设置,在清单的 v2 中,我们可以像这样设置弹出窗口:
如何在谷歌浏览器扩展清单 v3 中设置默认弹出页面?
javascript - 如果将相应的资源注入到文件 URL 页面中,则会忽略“web_accessible_resources”清单键
最近我的 MV3 扩展停止工作(虽然它之前工作)。经过一些研究,我发现注入的脚本/CSS 无法加载,尽管它们已列在web_accessible_resources
清单键中。这些必要的资源由我的内容脚本通过document.createElement
. 值得注意的是,只有在将这些资源注入到file://
打开了本地文件( )的页面中时,才会出现此问题;页面没有问题http://
。
我收到net::ERR_BLOCKED_BY_CLIENT
所有注入资源的错误:
下面是我清单中的“web_accessible_resources”键:
我没有安装类似 adblock 的扩展。我也尝试清除浏览器缓存,但没有运气。
那么它是一个错误还是一个功能?当前的 Chrome 开发文档没有提到这种行为。
我制作了一个重现问题的MCVE。
google-chrome-extension - 是否有任何简单的方法来更改选项卡、组、chrome 的窗口以进行扩展?
是否有任何简单的方法来更改选项卡、组、chrome 的窗口以进行扩展?
当这些行为之一:
创建或关闭或移动选项卡或更改选项卡的 url 或从选项卡组中添加或删除
或创建或关闭或释放选项卡组或更改选项卡组的颜色或标题或移动选项卡组
我知道我可以通过 chrome.tabs.oncreate & chorme.tabs.onupdate 等来一一判断。
但我想知道天气有没有一个动作可以一次判断所有的变化?
谢谢你
javascript - 在 chrome 扩展中使用内容脚本插入 DOM 元素
我正在尝试为 twitter 做一个扩展,我被困在本节中插入 div 块(有点像 btn)
清单.json
内容.js
我研究了一些像MutationObserver这样的东西, 但在这里我得到了错误,因为参数不是节点
Twitter在向下滚动时删除以前的帖子添加新帖子,并在滚动回顶部时添加以前的帖子删除新帖子
google-chrome - 如何在 Google Chrome 扩展程序中为 webRequest 事件 onBeforeRequest 执行脚本
按照 Chrome Extension Manifest V3 规则,我想创建一个扩展程序,它监听特定的网络请求,首先,只需将它们记录到当前打开的选项卡的控制台(稍后我想在页面中添加自定义脚本和样式当前选项卡)。
为此,我尝试使用 chrome.scripting.executeScript。
当我从https://github.com/GoogleChrome/chrome-extensions-samples/blob/main/examples/page-redder/manifest.json实现示例时,它的工作方式与 chrome.action.onClicked 侦听器的预期一样。
一旦我尝试在 chrome.webRequest.onBeforeRequest 侦听器中执行脚本,就会弹出此错误:
事件处理程序中的错误:TypeError:调用 scripting.executeScript 时出错(scripting.ScriptInjection 注入,可选函数回调):参数“注入”错误:属性“目标”错误:缺少必需的属性“tabId”。在 chrome.webRequest.onBeforeRequest.addListener.urls ()
缺少必需的属性 tabId?我认为它与生命周期有关,但我不知道该怎么做。这是我的清单:
这是我的脚本,我只是稍微修改了“redden”示例:
javascript - Mac 上用于扩展的 Chrome 通知 API 不起作用
这是一个 Chrome 扩展。
以下文档已考虑在内: Chrome Notification API
以下 3 个文件为例的问题:
显现:
内容.js
bg_page.js
以上适用于 Windows 上的 Chrome,但不适用于 95 版 chrome(可能还有其他版本)的 Mac。
所以我的问题是:
为什么这在装有新版 Chrome 的 Mac 上不起作用?
在此测试用例中,每次访问站点时,扩展程序都应显示桌面通知。
注意:已在 3 台单独的 Mac 上进行了测试。
它也可能不适用于旧版本,尚未经过测试,但我只关注较新版本/最新版本的 Chrome。
以下内容已经过测试和讨论:
- Chrome 和 Mac 之间的权限问题 - 已在 3 台不同的 Mac 上进行了测试,结果均相同,但无法正常工作。
- Chrome 和站点之间的权限问题 - 但由于它应该适用于上述测试代码中的所有站点,因此不应该是这种情况。也经过测试确认,问题依旧存在。
所以我没有想法。
google-chrome - 使用 declarativeNetRequest 进行动态重定向
我想使用 declarativeNetRequest 将域中的所有 URL 重定向到以发起方 URL 作为编码参数的 URL,例如
就像是...
这可能吗?如果没有,还有其他方法可以实现这一目标吗?
javascript - Chrome 扩展开发:chrome.storage.local vs Indexeddb
我目前正在开发一个数字钱包应用程序作为 chrome 扩展,并试图找出我应该使用什么作为我的持久存储层:chrome.storage.local或indexedDb。我研究过其他类似的开源项目,似乎大多数使用前者而不是后者。
我想了解使用其中一个是否有任何优势。目前,我倾向于使用chrome.storage.local的原因是:
- 在官方 chrome 扩展文档中建议作为存储 API
- 它在应用程序重新启动时是持久的。(Indexeddb 似乎也是,但我没有发现它在任何文档中被明确提及为持久存储,所以我不确定)
- 两者都是异步的
- 简单的 API(与 indexeddb 不同)
我知道我的用例和数据形状可能是一个重要因素:就我的应用而言
- 我正在存储简单的 JSON 类型(字符串、数字、布尔值、对象、数组)
- 对象数组可以任意增长,例如存储地址列表或交易历史。(这确实是让我认为 IndexedDb 是否会提供任何优势的主要原因)
基于上述情况,是否有任何理由可以比另一个更好地为我的应用程序提供服务?还有什么我应该考虑的吗?提前致谢!
javascript - 如何执行针对另一个扩展的脚本?
在 Chrome 扩展中,有什么方法可以将脚本执行到另一个打开的扩展中?每当打开不同的扩展程序时,我只想单击特定按钮。
我尝试使用chrome 脚本 API:
起初我得到了错误:
启用chrome:// URLs标志 ( chrome://flags/#extensions-on-chrome-urls
) 上的扩展后,我现在得到:
这是我的清单权限,应该允许所有网址:
我也尝试过*://*/*
或chrome-extensions://*/*
但没有成功。
有什么办法吗?或者有没有其他方法可以自动单击另一个正在运行的扩展程序中的按钮?
谢谢!