首页 > 解决方案 > 如何使用 JS 选项卡 API 以编程方式静音活动浏览器选项卡?

问题描述

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

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

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

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

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

标签: javascripttabsfirefox-addonuserscripts

解决方案


browser.tabs.update({静音: true});

以上 API 在浏览器范围内(用于浏览器和扩展),在用户脚本运行的范围内userScript或范围内不可用。content

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

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

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

推荐阅读