我的最终目标是检测浏览器是否能够显示webp图像。如果是这样,将页面上的所有图像替换为其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图像?
我建议使用的WEBP支持检测http://stackoverflow.com/a/27232658/288906一个轻量级的解决方案 –