【问题标题】:How to mute active browser tab programatically with JS tabs API?如何使用 JS 选项卡 API 以编程方式静音活动浏览器选项卡?
【发布时间】:2020-09-16 17:47:40
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: javascript tabs firefox-addon userscripts


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 2013-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多