- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的最终目标是检测浏览器是否能够显示 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 图像首先加载?
最佳答案
replace
函数返回一个字符串,但不会改变它。您只需将值赋回即可:
allImages[i].src = allImages[i].src.replace("old", "new")
已编辑评论:所有浏览器都会下载图像的 src
属性中的相应文件。作为您方法的替代方法,我建议将文件名存储在 img
标记的不同属性中。
您的图像标签可能如下所示:
<img alt="" data-png-source="/path/to/image.png" />
相应的Javascript可以将src
属性设置为正确的版本。
var supportsWebP = true; //set this variable properly
for(i = 0; i < length; i++)
{
var image = allImages[i];
var pngSource = image.getAttribute('data-png-source');
image.src = supportsWebP ? pngSource.replace('.png', '.webp') : pngSource;
}
关于javascript - WebP 图像替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8315347/
看到 WebP 图片惊人的缩小(比无损 + alpha 图片的“pngcrushed”PNG 小约 28%),我们希望将 WebP 图片提供给支持 WebP 的浏览器。 如果客户端浏览器支持 WebP
我正在尝试使用 imagemin-webp 而不是使用 将多个 PNG 和 JPG 文件转换为 WebP cwebp 一次转换一个,但由于某种原因它不起作用。 到目前为止我所做的一切: 1- 我安装了
如何将一堆png或webp图片转成webp动画? 我试过了: convert mytiles.png -crop 100x100 +repage tmp.webp 但我只是得到一堆 webp 图像而不
我有这张图片(我在 SGS 9 plus 上拍摄的照片):Uncompressed JPG image .它的大小为 4032 x 3024,重量为 大约 3MB .我用 TinyJPG Compre
此命令将 PNG 序列转换为 JPG 序列:ffmpeg -i in/%8d.png out/%8d.jpg但是,当对 WEBP 使用相同的命令时:ffmpeg -i in/%8d.png out/%
有什么方法可以使用 filepond 将任何图像转换为 webp? 这是我的代码: import vueFilePond, { setOptions } from 'vue-filepond' //
我正在使用 标记以设置具有 WebP 支持的响应式图像。 我正在提取同时具有 .web 的桌面图像和移动图像 URL和 .jpg文件。 对于每种媒体,我给出 .webp版本和 .jpg版本。 我期望的
我的最终目标是检测浏览器是否能够显示 webp 图像。如果是,则将页面上的所有图像替换为其 webp 等效项(位于同一目录中,名称相同,只是扩展名不同) 目前我有一个脚本可以成功检测浏览器是否能够显示
我一直在为网站处理图像,发现 .webp 格式比 .jpeg 或 .png 更紧凑> 在 Docs 上找到更多信息. 现在我有一个包含近 25 张图像的文件夹,我想将所有图像转换为 .webp 格式。
我试图让我的网站更快,但发现将 jpg 和 png 转换为 webp 可能会有所不同,所以我想复制主题目录中的所有图像,包括不同文件夹中子目录中的图像,但保持原始目录流. 在谷歌上搜索后,我在这个网站
我有一个从原始 AR Stickers APK 中提取的动画 webp 文件我想在我的应用程序中显示,以便在 ARCore 中加入。看起来我可以轻松地将 webp 文件的第一帧加载到 ImageVie
我正在看官方WebP lossless bitstream spec.我有一种感觉,该文件缺少一些解释。 让我描述一下规范的一些片段: 1。简介-清晰 2。 Riff header - 清晰 3。转换
我在互联网上搜索了很多,但在网上找不到合适的例子或完整的教程,可以完整教授。所以大家请给我一些好的例子。 我已经在很多地方或网站上尝试过 WEBP 代码,例如与 modernizer 一起使用、检查浏
我查看了 Azure 中的以下文档 ( https://docs.azure.cn/en-us/cdn/cdn-image-processing ),不确定我是否正确阅读。我的问题是,我希望提供从 c
是否有任何工具或脚本可以批量转换动画 webp 图像? 我想从我的动画 webp 图像创建动画缩略图: 调整图像大小 降低质量(有损压缩) 降低帧率 我尝试了 ImageMagick 之类的工具,但它
我想做的事: 我想使用 Flutter 的 CameraController 录制视频,该视频的持续时间与动画 webp 相同。在我的屏幕上方,动画 webp 正在播放,下方有一个 CameraPre
我正在使用如下代码: 我希望的是,当某些版本的 Safari 浏览器不支持 Webp 图像格式时,根据媒体查询回退到以下来源,而不是直接回退到 "
我的 Django 项目应用程序中有上传图像的服务,我需要将所有图像转换为 webp,以优化前端对这些文件的进一步处理。 _convert_to_webp 方法草案: # imports from p
我已经使用以下代码更新了 WordPress 以允许 WebP 上传, function webp_upload_mimes( $existing_mimes ) { $existing_mi
很难找到一个可以查看 WEBP 图像的应用程序。因此,当您将其下载到硬盘时,将其下载为更常见的格式(例如 JPEG 或 PNG)可能会更方便。 那么有没有一种简单的方法可以将 WEBP 保存为更好的文
我是一名优秀的程序员,十分优秀!