如何使用 JS 选项卡 API 以编程方式使活动浏览器选项卡静音?

How to mute active browser tab programatically with JS tabs API?

我正在尝试构建一个简单的用户脚本来自动静音匹配特定 URL 的选项卡。我试图从简单开始,如果活动选项卡与 URL 匹配,则将其静音。这是我希望执行静音操作的代码:

browser.tabs.update({muted: true});

但是当我尝试 运行 它时,没有任何反应。从 tabs.update documentation 我知道如果我正在使用活动选项卡我不必指定选项卡 ID,但它也说这个函数 returns 是一个 Promise,我不熟悉这对事情有何影响。 (我能找到的每个 Promise 示例都使用 .then 方法在 Promise 完成后调用特定操作,例如编写控制台输出。但我不需要任何事情发生 afterwards,我只想 发生 。)

谁能帮忙弄清楚为什么这段代码不起作用?

(注意:我在 Firefox 上使用 Firemonkey 扩展 运行ning 用户脚本。)

browser.tabs.update({muted: true});

以上 API 在浏览器范围内(对于浏览器和扩展程序)并且在 userScriptcontent 范围内不可用,其中用户脚本 运行.

在用户脚本中,您需要使用 Web API。

这是一个你可以研究的想法....未经测试

document.querySelectorAll('audio, video').forEach(item => {
  item.muted = true;
  item.pause();
});