Ich habe versucht, die folgende userscript zu verwenden, um alle Audiodaten von einer bestimmten Website zu entfernen:Audio wird nicht mit JavaScript stumm geschaltet werden - Audio-Tags mit mutationobserver zu entfernen brauchte
// ==UserScript==
// @name addicto
// @namespace nms
// @include http://*
// @include https://*
// @version 1
// @grant none
// ==/UserScript==
addEventListener('DOMContentLoaded',()=>{
let sites = ['mako.co.il'];
let href = window.location.href;
for (let i = 0; i < sites.length; i++) {
if (href.includes(sites[i])) {
Array.prototype.slice.call(document.querySelectorAll('audio')).forEach((audio)=>{
audio.muted = true;
});
}
}
// If href includes the value of the iteration on the "sites" array, do stuff.
});
Dieser Code hat nicht funktioniert und ich nehme an Das Beobachten aller audio
Tags, die zufällig kommen und das DOM mutieren, ist genau das, was ich besser bewältigen muss.
Wie kann dieser Mutationsbeobachter geschrieben werden? Ich habe noch nie einen Mutationsbeobachter geschrieben, und ich habe das Gefühl, dass dieses Beispiel sehr kurz und sehr grundlegend wäre und genau das, was ich brauche, um den Code-Kontext der Logik, die ich gerade beschrieben habe, zu würdigen versuche es mir und anderen Leuten zu zeigen, die ein ähnliches Problem haben.
Könnte nicht ein Problem sein, aber beachten Sie, dass Ihr Skript nicht alle möglichen Quellen von Tönen stumm schalten, die durch eine Registerkarte gestreut werden könnte, nur diejenigen, die im Inneren des DOM als HTMLAudioElement angehängt werden. Es werden alle HTMLAudioElements, die nicht im DOM enthalten sind, alle Videoelemente, alle AudioContexte und alle oben genannten +, die an DOM angehängt sind, wenn sie sich in einem Iframe befinden, vermisst. Wenn eine echte Erweiterung eine Option ist, dann könnte es einfacher sein, [chrome.tabs API] (https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs/update) mit dem zu verwenden 'update (tabId, {muted: true})' Methode – Kaiido