그림을 그리기 전에 자바스크립트를 실행하는 방법 (DOMContentLoaded 이벤트 사용)

화면 그리기 전에 자바스크립트를 실행하는 방법


설명


화면이 보이지만 불러오는 중이어서 링크를 누르고 싶지 않은 경우도 있다.
이때 일반적으로 알려진'onload'이벤트에서'pointer-events:none'을 지정한다고 생각하지만 이렇게 하면 화면이 그리기 간격을 두고 실행되기 때문에 불러오는 과정에서 사용자가 작업을 하고 예상치 못한 행동을 할 수 있습니다.
그곳에서 이용되는 것은 다음과 같은 활동이다.
<이벤트>
DOMContentLoaded
이것은 "}"의 해석이 완료되었을 때 발생한 이벤트이기 때문에 "}"내의 이미지와 CSS, 자바스크립트를 불러오기 전에 발생합니다.
따라서 이 이벤트를 사용하면 화면을 그리기 전에 실행할 자바스크립트를 실행할 수 있습니다.
구체적인 이용 방법은 다음과 같다.

샘플 프로그램


지정한 불러올 때 사용하지 않는 프로그램을 추가하려면 누르십시오
샘플 프로그램
window.addEventListener('DOMContentLoaded', function () {
  //bodyタグを取得
  var obj = document.querySelector("body");
  //bodyタグにクリックイベントを無効化するstyleを追加
  obj.setAttribute("style", "pointer-events: none;");  
  //コンソールへのログ出力
  console.log("DOMContentLoadedイベントが実行されました。");
});

확인


정말로 onload 전에 실행되었는지 확인한 결과는 다음과 같다.
검증 프로그램
<html lang="jp">
<header>
    <meta charset="utf-8"/>
    <script>
        //onloadイベントとDOMContentLoadedの実行順について
        window.addEventListener('load', function () {
            var div = document.querySelector("div");
            var p = document.createElement('p');
            p.innerText = "loadイベントが実行されました。";
            div.appendChild(p);
            console.log("loadイベントが実行されました。");
        });
        window.onload=function () {
            var div = document.querySelector("div");
            var p = document.createElement('p');
            p.innerText = "onloadイベントが実行されました。";
            div.appendChild(p);
            console.log("onloadイベントが実行されました。");
        };
        window.addEventListener('DOMContentLoaded', function () {
            var div = document.querySelector("div");
            var p = document.createElement('p');
            p.innerText = "DOMContentLoadedイベントが実行されました。";
            div.appendChild(p);
            console.log("DOMContentLoadedイベントが実行されました。");
        });
    </script>
</header>
<body>
    <div>これは、onloadイベントとDOMContentLoadedの実行順について検証するhtmlです。</div>
</body>
</html>

검증 결과



화면에는 "DomcontentLoaded 이벤트가 실행되었습니다."load 활동이 실행됨앞에 보이기 때문에 onload 앞에서 실행되었음을 알았습니다.

좋은 웹페이지 즐겨찾기