Uncaught TypeError: Cannot read property 'nodeType' of null(in Elm)

3638 단어 HTMLElm

요약



우선 전부의 script 태그에 defer에서도 붙여 본다

문제







화면이 깔끔하고 개발자 도구 콘솔에 Uncaught TypeError: Cannot read property 'nodeType' of null

상황


<!DOCTYPE html>
<html lang="ja">
  <head>
    <script type="text/javascript" src="/elm.js"></script><!-- elm makeで生成したやつ -->
    <script type="text/javascript" src="/index.js"></script><!-- この中でElm.Main.initしてる -->
  </head>
  <body></body>
</html>

별로 없다고 생각하지만 어떤 상황
Elm의 코드를 JS 측에 붙여도 함께

해결책



1 defer
<!DOCTYPE html>
<html lang="ja">
  <head>
    <script type="text/javascript" src="/elm.js" defer></script>
    <script type="text/javascript" src="/index.js" defer></script>
  </head>
  <body></body>
</html>

최소한 Elm.main.init 하는 쪽에는 defer 붙일 필요가 있습니다

2 아래쪽에 놓기
<!DOCTYPE html>
<html lang="ja">
  <head>
    <script type="text/javascript" src="/elm.js"></script>
  </head>
  <body><script type="text/javascript" src="/index.js"></script></body>
</html>

defer는 모르는 사람에게 추천

원인



따로따로 Elm 관계없다. DOM을 마운트 할 때 제대로 대상 DOM이 존재하는지 여부

js의 퍼스라든가 DOM의 할 수 있는 타이밍이라든지 여러가지 있지만 자세한 것은 다른에서 조사해 주세요. 중요한 것은 DOM이 된 후에 init
defer는 js의 실행을 DOM이 된 후에 하기 때문에
세부 사항을 신경 쓰지 않으면 아무 것도 어렵지 않습니다.

좋은 웹페이지 즐겨찾기