私の最終的な目標は、ブラウザがWebP画像を表示できるかどうかを検出することです。そうである場合は、ページ上のすべての画像を同等のwebpに置き換えます(同じディレクトリにあり、同じ名前で、拡張子が異なるだけです)
現在、ブラウザがwebpを表示できるかどうかを正常に検出するスクリプトがあります
(function(){
var WebP=new Image();
WebP.onload=WebP.onerror=function(){
if(WebP.height!=2){
console.log("You do not have WebP support.");
} else {
console.log("You do have WebP support.");
}
};
WebP.src='data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA';
})();
webpをサポートするケースの中で、次のコードを試しましたが、失敗しました。
// replace .gif with .webp
var allImages = document.body.getElementsByTagName("img");
var length = allImages.length;
var i;
for(i = 0; i < length; i++){
allImages[i].src.replace("png", "testtest");
console.log(allImages[i]);
}
ヘッダーに配置すると、コンソールにはすべての画像タグが正しく表示されますが、ソースは元のfilename.pngから変更されていません。
何が間違って行われているのかについてのアイデアはありますか?
編集: wsanvilleのおかげで、画像が読み込まれない理由に問題があることがわかりました。ただし、Chromeのネットワークタブを見ると、pngとwebp画像の両方を読み込んでいることがわかります。そもそもpng画像が読み込まれないようにするにはどうすればよいですか?