Tengo un código Javascript en la cadena que quiero agregar al cuerpo HTML. Y en ese código quiero import algunas funciones de otra localización. Así es como agrego el código Javascript al cuerpo HTML:
const script = document.createElement('script'); script.setAttribute('type', 'module'); script.text = await view.addScript(); // that function is returning my Javascript code document.body.appendChild(script);Cuando hago esto, recibo un error: " Error al cargar la secuencia de comandos del módulo: se esperaba una secuencia de comandos del módulo JavaScript, pero el servidor respondió con un tipo MIME de "texto/html". Se aplica una verificación estricta del tipo MIME para las secuencias de comandos del módulo según la especificación HTML. "
Lo cual entiendo. Y cuando estoy usando el código adjunto de otra manera:
cambiando:
script.setAttribute('type', 'module');
a
script.setAttribute('type', 'text/javascript');
luego recibo un error: " No se puede usar la declaración de importación fuera de un módulo ", que también entiendo.
Mi pregunta es : ¿es posible configurar el módulo Javascript, donde el código se agrega desde una cadena, sin configurar un atributo src porque en mi caso ese src no existe?
¡Gracias!
Bien, resolví el problema. Cuando codifico de esta manera:
const script = document.createElement('script'); script.setAttribute('type', 'module'); script.text = await view.addScript(); // that function is returning my Javascript code document.body.appendChild(script); ¿Que está mal? El texto de mi script incluía una declaración import . Cuando una ruta en la import es incorrecta, obtendrá un error MIME. Cuando di la ruta correcta, el error desapareció y ahora todo funciona :)