【ブックマークレット紹介】lazyloadを手軽に目視確認することができるツール

<section>
  <h1>lazyloadを手軽に目視確認することができるブックマークレット</h1>
  <section>
    <h2>はじめに</h2>
    <p>本記事に記載のブックマークレットによって、lazyloadが導入されているかどうかの確認を手軽におこなうことができます。<br>目視で手軽に確認できるようにすることで品質も生産性も高めることに役立ててください。</p>
  </section>
  <section>
    <h2>ブックマークレットの出力イメージ</h2>
    <p>下記はサンプルページです。本記事に記載のブックマークレットを使用することで<br>lazyloadがされている画像は赤枠で囲われます。<br>逆にlazyloadをしていない画像は青枠で囲われます。</p>
    <section>
      <h3><b>▼ブックマークレット使用前</b></h3>
      <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3307473/4fb9da99-210a-a166-2733-9271e365a699.png" alt="" width="800">
    </section>
    <section>
      <h3><b>▼ブックマークレット使用後</b></h3>
      <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3307473/8aa0cfcb-aac1-4064-687e-908492da54e6.png" alt="" width="800">
      <p>また、コンソールを見るとimgタグにwidth属性とheight属性を設定されていない画像がログに出力されます。</p>
      <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3307473/7b600310-ddd5-3565-59cd-325569529985.png" alt="" width="800">
    </section>
  </section>
  <section>
    <h2>ブックマークレットのソースコード</h2>
    <p>
      <pre style="width: 800px;">
          javascript:(
            function(){
              const hasLazy = document.querySelectorAll("img.lazyload");
              const notHasLazy = document.querySelectorAll("img:not(.lazyload)");
              hasLazy.forEach(function(elm) {
                elm.style.border = "5px solid red";
              });
              notHasLazy.forEach(function(elm) {
                elm.style.border = "5px solid blue";
              });
              for (let i = 0; i < hasLazy.length; i++) {
                if (!hasLazy[i].hasAttribute("width")){
                  console.log("【width未設定】src="+String(hasLazy[i].dataset.src))
                }
                if (!hasLazy[i].hasAttribute('height')){
                  console.log("【height未設定】src="+String(hasLazy[i].dataset.src))
                }
              }
              console.log("処理終了");
            }
          )();
      </pre>
    </p>
    <section>
      <h3>ソースコード解説</h3>
      <p><code>const hasLazy = document.querySelectorAll("img.lazyload");</code><br>
      <code>const notHasLazy = document.querySelectorAll("img:not(.lazyload)");</code><br>
      上記のセレクタ指定をご自身のWebサイトに合わせて指定ください。<br><code>hasLazy</code>はlazyloadされるimgタグを指定。<br><code>notHasLazy</code>はlazyloadされていないimgタグを指定。<br>※デフォルトではimgタグにクラス名「lazyload」があるものを指定しています。</p>
      <pre style="width: 800px;">
            const hasLazy = document.querySelectorAll("img.lazyload");
            const notHasLazy = document.querySelectorAll("img:not(.lazyload)");
      </pre>
      <p>
        <code>console.log("【width未設定】src="+String(hasLazy[i].dataset.src))</code><br>
        <code>console.log("【height未設定】src="+String(hasLazy[i].dataset.src))</code><br>
        上記のセレクタ指定をご自身のWebサイトに合わせて指定ください。<br>lazyloadによって表示させたい画像を属性値としている属性などを指定。<br>デフォルトではdata属性「data-src」を指定しています。
      </p>
      <pre>
        for (let i = 0; i < hasLazy.length; i++) {
          if (!hasLazy[i].hasAttribute("width")){
            console.log("【width未設定】src="+String(hasLazy[i].dataset.src))
          }
          if (!hasLazy[i].hasAttribute('height')){
            console.log("【height未設定】src="+String(hasLazy[i].dataset.src))
          }
        }
      </pre>
    </section>
  </section>
  <section>
    <h2>さいごに</h2>
    <p>lazyloadはWebページを作る際に当たり前のように実装を求められる機能です。（※主観あり）<br>ヌケモレなくlazyloadを導入して品質を高いWebサイトにしましょう。</p>
  </section>
</section>