我尝试使用以下mutationObserver
来观察所有audio
标记以将其删除,以便完全关闭特定网站中的声音。我用Greasemonkey运行了脚本。
new MutationObserver(() => {
document.querySelectorAll('audio').forEach(node=>node.remove())
}).observe(document, {subtree: true, childList: true});
这还不够,因为在audio
之前加载了一些DOMContentLoaded
标记。
我还能做些什么来删除这些音频标签(即在被mutationObserver
捕获之前加载的那些)?
我虽然每1毫秒使用setInterval()
,但在我看来这是我真正需要避免的事情,因为它会感觉到我的电脑内存并且卡住了浏览器。
让我强调一下:它只是我在任何网站上运行的脚本,因此在这个问题中没有HTML或CSS显示。
答案 0 :(得分:1)
并非所有音频都使用<audio>
标签完成。音频可以来自未附加到DOM的媒体元素。它也可以使用Web Audio API生成,甚至可以与MediaDevice API结合使用。音频也可以通过插件生成。
您需要编写一个浏览器扩展程序,并将该API用于您要扩展的特定浏览器以使该选项卡静音。