Chrome扩展程序:停止所有选项卡和窗口,但活动选项卡和窗口除外,并且正在播放音频



如何停止除活动选项卡和播放音频的选项卡和窗口之外的所有选项卡和窗口?我发现这有帮助:

如果您希望内容脚本始终发生某些事情,请在>清单中定义它:

如果应始终注入内容脚本的代码,请使用content_scripts字段在>扩展清单中注册它

"content_scripts" : [{
"matches": ["<all_urls>"],
"js": ["stop.js"],
"run_at": "document_start"
}],

这样,您就知道 stop.js 在页面加载开始时与每个页面一起加载。然后你可以实现你的逻辑。简单的解决方案:

// stop.js
setTimeout(() => {window.stop()}, 10000);

问题是:没有提到活动窗动选项卡,选项卡或活动音频。 我一直想这样做一段时间了。 基本上,现在的网站是活的(javascript溢出(和黑色幽默允许的,我希望它们一旦完成加载就死了,除了音频/视频网站(javascript终止(。还提到了:

您可能还需要考虑在内容脚本中添加"all_frames": true>如果您希望这也发生在子帧中。

所以它会看起来像这样:

"content_scripts" : [{
"matches": ["<all_urls>"],
"js": ["stop.js"],
"run_at": "document_start"
"all_frames": true
}],

您可以使用页面可见性 API 尤其是脚本中的document.hidden属性,以了解当前选项卡是否可见以防止"停止"它:

Document.hidden(只读(
如果页面处于用户认为隐藏的状态,则返回 true,否则返回 false。

此 API 还提供事件来检测页面可见性更改,以防您想要对它们做出反应(在选项卡之间切换(。

关于播放音频的选项卡,我建议您向扩展添加后台脚本 并使用 chrome.tabs API 从标签页发送消息,以检查哪些标签正在播放音频。
该 API 提供布尔audible属性,如下所述:

选项卡在过去几秒钟内是否产生声音(但如果同时静音,则可能无法听到声音(。等效于扬声器音频指示器是否显示。

您还可以查看Great Suspender Chrome扩展程序的代码,您可能会找到一些有用的代码。

相关内容

  • 没有找到相关文章

最新更新