目次(クリックでジャンプ)
画像の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を指定するのが面倒、という方はぜひお試しください。