【JS】画像のwidthとheightを自動で追加する(「要素のwidthとheightが明示的に~」回避)

JS widthとheightが明示的に~問題回避
  • URLをコピーしました!
目次(クリックでジャンプ)

画像のwidthとheightを自動で追加する

ページスピードインサイトにエラーとして指摘される、「要素のwidthとheightが明示的に指定されていない」の簡単な回避策です。
一々imgタグへwidthとheightを指定するのは非効率的ですので、私はjsで対応しています。

  • widthとheightを自動でimgタグへ挿入
  • 既に手動でwidthとheightが指定されているimgタグはそのままに
  • PageSpeed Insightsの「要素のwidthとheightが明示的に~」回避

JS

function imgWidthHeightSet() {
    // すべての画像要素を取得
    const images = document.querySelectorAll('img');

    // すべての画像要素の src または data-src 属性を読み込み、width と height 属性を設定する
    images.forEach(image => {
        // 画像の読み込みを行う Image オブジェクトを生成
        const img = new Image();

        // 画像の読み込みが完了した時の処理
        img.onload = function() {
            // 画像の実際の幅と高さを取得し、width と height 属性に設定
            image.setAttribute('width', this.width);
            image.setAttribute('height', this.height);
        };

        // 画像の読み込みを開始
        img.src = image.getAttribute('src') || image.getAttribute('data-src');
    });
}
document.addEventListener('DOMContentLoaded', imgWidthHeightSet);

上記のコードをスクリプトファイルへ追記するだけで、自動でwidthとheightに値を挿入することが出来ます。
widthとheightは画像のプロパティから参照しています。

画像のwidthとheightを自動で追加する まとめ

こちらのコードを挿入するだけで、PageSpeed Insightsのスコア改善にもなります。
いちいちWidthとHeightを指定するのが面倒、という方はぜひお試しください。

おすすめのフリーランス向け求人・案件探しサービス

高単価案件、週3日~などフレキシブルな働きが可能な事が特徴の転職サービスです。案件をチェックするだけであれば無料の為、エンジニアやデザイナーの方は是非登録してみてください。

4275件と案件数豊富です(2024年4月現在)
JS widthとheightが明示的に~問題回避

この記事が気に入ったら
フォローしてね!

役に立った!と思ったらシェアお願いします
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

フリーランスのWebデザイナー「Kizineko」です。Webサイトのデザイン~コーディング、簡易的なプログラム実装等、Web制作に係る広くに携わっております。当ブログでは日々のメモ帳として便利なコードなどを共有しております。

目次(クリックでジャンプ)