Import arquivo javascript no arquivo html não funciona

Olá, pessoal!

Estou com um problema na hora de importar um arquivo js em um arquivo html. O arquivo html possui uma tag de script onde chamo o arquivo js que tem uma função chamada ‘clicar’. Essa função é trigada pelo onclick do button ‘clique aqui’. Contudo, quando clico no botão recebo erro dizendo que a função clicar não está definida. Se eu coloco a função dentro da tag script e tiro src o código funciona. Talvez seja algo relacionado a string de diretório no src, mas aparentemente está certa. Já tentei também colocar a função dentro do window.onload, mas não funcionou. Não consigo enxergar o erro. Se alguém puder ajudar. Agradeço a atenção de todos.

Estrutura de pastas

  • src
    • teste.js
  • index.html

<html>
  <head>
    <title>Parcel Sandbox</title>
    <meta charset="UTF-8" />
  </head>

  <body>
    <div id="root">
      <button id="btn-clique" type="submit" onclick="clicar()">
        CLICK AQUI
      </button>
    </div>
    <script type="text/javascript" src="./src/teste.js"></script>
  </body>
</html>

function clicar() {
  console.log("hello world");
}

Erro

×
ReferenceError
clicar is not defined
HTMLButtonElement.onclick

Estranho, peguei seu código e rodei na mesma estrutura e funcionou de boas. Imprimiu “hello world” no console após clicar no botão.

Após abrir o html no chrome, inspecione a página e vá na aba Sources e veja se o teste.js vai aparecer em algum lugar.

Oi, Lucas! Obrigada por responder! O teste.js aparece sim.


Vi que tem um iframe na página. Esse botão tá dentro desse iframe?

O botão está fora.

O codesandbox coloca aqueles tags ali em baixo sozinho.

Estranho, instalei o chrome novamente. Agora rodando o código localmente funciona, porém antes localmente recebia o mesmo erro do codesandbox. Por isso tinha descartado a hipótese de ser algo relacionado ao codesandbox.

Local

Como funcionou local agora, acredito que o problema seja lá mesmo.