Tengo un archivo html básico como tal:
<!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> </head> <body> <script type="module" src="test2.js"></script> <p> <button onclick="myMove()">Click Me</button> </p> <div id ='myContainer'> <div id ='myAnimation'></div> </div> </body> </html>El archivo hace referencia a un archivo javascript externo, llamado "test2.js", e intenta usar una función llamada "myMove()" al hacer clic en el botón.
El archivo javascript y su función, "myMove()" están aquí de la siguiente manera:
import './style.css' function myMove(){ var elem = document.getElementById('myAnimation'); var pos = 0; clearInterval(id); id = setInterval(frame,10); function frame() { if (pos == 350){ clearInterval(id); } else { pos++; elem.style.top = pos +'px'; elem.style.left = pos + 'px'; } } }Al incrustar la función directamente en el archivo html, funciona bien. Pero cuando intenta llamarlo externamente como se ve arriba, la consola del navegador informa el error:
test2.html:20 Uncaught ReferenceError: myMove is not defined at HTMLButtonElement.onclick (test2.html:20:32)¿Por qué el archivo html no encuentra la función javascript y qué puedo hacer para solucionarlo?
Aclaración adicional: la pestaña de red muestra que no hay ningún error al cargar el archivo. Además, cuando elimino "importar '/style.css'" del javascript, afecta la visualización de la página, lo que indica que se está accediendo.
Gracias
Una pregunta aclaratoria, ¿se cargó el archivo javascript externo? puede verificar desde las herramientas de desarrollo de su navegador (generalmente Ctrl + Shift + i en Windows), en la pestaña de red. Asegúrese de que no muestre un 404 o cualquier otro error al cargar test2.js
<script src="test2.js"></script>
No estoy seguro de por qué importa css desde javascript.
Para importar css
<head> <link rel="stylesheet" href="style.css"> </head>Luego cambie su script a
<script src="test2.js"></script>