Tengo un archivo JS que exporta algunas funciones. Necesito uno de esos en el atributo de descarga de la etiqueta del cuerpo HTML. ¿Cómo importo la función de JavaScript en el HTML en línea?
Intenté lo siguiente:
archivo JS
export function initPage() { ... }archivo HTML
<script type="module" src="js/script.js"></script> <body onload="initPage()">Pero me sale este mensaje de error:
Uncaught ReferenceError: initPage is not definedEncontré una pregunta de Stackoverflow pero perdí la URL. Si alguien sabe a qué pregunta me refiero, por favor comparta el enlace y eliminaré esta pregunta.
¡Gracias!
Podrías intentar lo siguiente:
{...} <body> {...} <!-- End of the body --> <script type="module"> import {initPage} from '...'; document.addEventListener('DOMContentLoaded', function(event) { initPage(); }); </script> </body>Básicamente, el detector de eventos DOMContentLoaded podría ser una forma moderna de resolver su problema.
Encontré una solución que es muy fácil, no exactamente lo que quería, pero funciona:
<script type="module"> import {initPage} from "./js/file.js"; document.querySelector("body").onload = function () { initPage(); } ; </script> Ahora las etiquetas <script> con un atributo src ya no son necesarias.
Hice algunos intentos y lo que pareció funcionar para mí fue eliminar type="module" de la etiqueta del script y exportar desde la función js
Editar: lo que quise decir fue algo como esto
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="/js/script.js"></script> </head> <body onload="initPage()"> </body> </html>y
function initPage() { console.log('hupp'); }