1

I have an html file where I import a JS module from chessboard.js

<html lang="en">
  <head>

    <link rel="stylesheet" href="./chessboardFiles/css/chessboard-1.0.0.min.css" />
    <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
    <script id="import" src="./chessboardFiles/js/chessboard-1.0.0.js"></script>
    <title></title>
  </head>
  <body>
    
    <div id="board1" style="width: 400px"></div>
    <script>
      var board2 = Chessboard("board1", "start");
    </script>
  </body>
</html>

The only problem is that I want to write what's in the body's <script> tag in a separate JS file then add it to this html document via <script src='...'> however the <script id="import" ...> file that is imported is not exactly a module so I cant just do import * as C from chessboard-1.0.0.js in a new JS file because I get a

Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "text/html". Strict MIME type checking is enforced for module scripts per HTML spec. error in the console.

So is there any way to get the variables available in the HTML document (i.e Chessboard()) available in an external JS file? How could I do this?

  • where are you importing stuff? please enclose the code in question – Eliran Malka Oct 27 '21 at 00:20
  • btw, i don't see why `Chessboard` would not be available in the externally loaded file, if it's sitting in the global scope anyway (which seems to be the case?) – Eliran Malka Oct 27 '21 at 00:22
  • 1
    What are you expecting chessboard.js to do with the variable? If this is some kind of compentent, does it come with any methods or an API that may enable you to do what you need? – Jon P Oct 27 '21 at 00:36
  • I am not really sure, I just copied the solution from this stackoverflow post, https://stackoverflow.com/questions/38927285/how-do-i-use-chessboard-js-a-javascript-chessboard except I want to write the –  Oct 27 '21 at 01:36

1 Answers1

0

You could write to global window variables, or have everything in the window scope. Ex: window.board = Chessboard(...), and you can access that from different files if the script is run later than the definition.

Tom Foster
  • 462
  • 2
  • 10