En una aplicación Blazor Server (.NET Core 6), tengo este elemento de prueba html/head/script:
<script type="text/plain" data-consent-category="google" defer> alert("Google Analytics loaded"); </script>Cuando un usuario presiona un botón de consentimiento, se ejecuta un fragmento de código:
function ApplyPreferencesAbbreviatedCode() { let activatableScriptTags = document.querySelectorAll("script[type='text/plain']"); activatableScriptTags.forEach(element => { let requiredCategory = element.getAttribute("data-consent-category"); let clonedElement = element.cloneNode(true); clonedElement.setAttribute("type", "text/javascript"); element.parentElement.insertBefore(clonedElement, element.nextSibling); element.remove(); }); }Esto funciona bien en Edge pero no hace nada en Firefox. ¿Cómo puedo cargar scripts dinámicamente de una manera que funcione en Blazor Server/Firefox (debería funcionar con elementos de script con y sin un atributo src)?
Nota: no tener el atributo defer hará que Blazor Server elimine el elemento (aunque se supone que no tiene ninguna semántica cuando tampoco hay un atributo src).