2017-11-15 3 views
0

Ich habe versucht, die folgenden mutationObserver zu verwenden, um für alle audio Tags zu beobachten, um sie so zu entfernen, um Ton in einer bestimmten Website vollständig herunterzufahren. Ich habe das Skript mit Greasemonkey ausgeführt.Herunterfahren von Audio in einer bestimmten Website

new MutationObserver(() => { 
    document.querySelectorAll('audio').forEach(node=>node.remove()) 
}).observe(document, {subtree: true, childList: true}); 

Das war nicht genug, weil einige audio Tags vor dem DOMContentLoaded geladen werden.

Was könnte ich tun, um diese Audio-Tags auch zu entfernen (d. H. Diejenigen geladen, bevor sie von der mutationObserver erfasst werden)?

Ich benutze zwar setInterval() jede 1 Millisekunde, aber das scheint mir etwas zu sein, das ich wirklich vermeiden muss, da es den Speicher meines PCs spüren und den Browser stecken würde.

Lassen Sie mich betonen: Es ist nur ein Skript ich lief auf welcher Website, so gibt es keine HTML oder CSS in dieser Frage zu zeigen.

Antwort

1

Nicht alle Audiodaten werden mit <audio> Tags erstellt. Audio kann von Medienelementen stammen, die nicht an das DOM angeschlossen sind. Es kann auch mit der Web Audio API erstellt werden, vielleicht sogar in Verbindung mit der MediaDevice API. Audio kann auch von Plugins erzeugt werden.

Sie müssen eine Browsererweiterung schreiben und die API für den jeweiligen Browser verwenden, den Sie erweitern, um die Registerkarte zu deaktivieren.

+0

Was ist "steuerbar" durch JS, von allen Implementierungen, die Sie namedropped haben (außer "Audio" -Tags), lieber Brad? – Arcticooling

+0

Alles, außer Plugins. Viele Plugins können auch gesteuert werden, aber Sie müssten Code für jeden einzeln schreiben. – Brad

+0

Brad, 'setInterval ( () => {document.querySelector ('Audio') forEach ((e) => { e.remove();. }); }, 1000);' konnte die meisten sicherlich helfen mit "Audio" -Tags, aber was ist mit der ** Web Audio API ** und ** MediaDevice API ** Sie erwähnt? Kann ich auch mit 'setInterval()' ihren Sound komplett schließen? – Arcticooling

Verwandte Themen