如何在所有浏览器中彻底禁用WebP格式,仅在无其他格式可选时才加载该格式?
如何在所有浏览器中彻底禁用WebP格式,仅在无其他格式可选时才加载该格式?
太懂这种糟心的感觉了!我之前也被WebP坑过好多次——下载个标着PNG的图,结果打开后编辑软件直接报错,文件管理器里连缩略图都看不到,简直头疼。你说的没错,现在越来越多网站(尤其是用了Cloudflare图片优化服务的)强行推WebP,哪怕明明有JPG/PNG这类更通用的格式,就为了迎合谷歌的性能评分标准。下面给你分享几个亲测有效的方法,能在主流浏览器里实现「优先加载传统格式,只有真的没其他选择时才用WebP」:
一、Chrome/Edge(Chromium内核浏览器)
方法1:直接禁用WebP解码支持
适合不想装扩展的技术党:
- 右键点击浏览器的快捷方式,选择「属性」
- 在「目标」输入框的原有路径末尾,先加一个空格,再输入:
--disable-features=WebPImageDecoder,WebPImageWriter - 点击「确定」后重启浏览器,这样浏览器就会完全不支持WebP解码,服务器收到请求后就会自动返回其他可用的图片格式。
方法2:用扩展修改请求头
通过自定义Accept请求头,告诉服务器我们不接受WebP:
- 安装类似「User-Agent Switcher and Manager」或专门的「WebP Blocker」扩展
- 在扩展设置里添加自定义请求头:
键:Accept,值:image/jpeg,image/png,image/gif,image/bmp(可以根据你需要的格式调整) - 保存设置后,服务器就会优先返回你指定的格式,只有当这些格式都不存在时才会发WebP。
方法3:用油猴脚本拦截替换WebP
如果网站通过URL参数控制格式(比如CDN链接里的format=webp),可以写个简单的油猴脚本自动替换:
// ==UserScript== // @name WebP Fallback to JPG/PNG // @namespace http://tampermonkey.net/ // @version 0.1 // @description Auto replace WebP resources with JPG/PNG alternatives // @author Your Name // @match *://*/* // @grant none // ==/UserScript== (function() { 'use strict'; // 替换所有img标签里的WebP参数 document.querySelectorAll('img').forEach(img => { if (img.src.includes('format=webp')) { img.src = img.src.replace('format=webp', 'format=jpg'); } // 针对Cloudflare图片链接的特殊处理 if (img.src.includes('cloudflare')) { // 如果没有格式参数,手动添加 if (!img.src.includes('format=')) { img.src += (img.src.includes('?') ? '&' : '?') + 'format=jpg'; } } }); })();
这个脚本可以根据不同网站的CDN规则修改,不一定通用,但可以作为基础模板调整。
二、Firefox浏览器
方法1:修改内置配置禁用WebP
- 在地址栏输入
about:config,点击「接受风险并继续」 - 搜索
image.webp.enabled,把这个选项的值改成false - 重启Firefox后,浏览器就会拒绝加载WebP格式,服务器会自动返回其他可用格式。
方法2:用扩展控制请求头
和Chrome的思路类似,安装「Modify Headers for Firefox」扩展,添加自定义的Accept头,移除image/webp字段,强制服务器返回传统图片格式。
三、通用注意事项
- 有些网站可能真的只提供WebP格式(比如部分小众图库),这时候你只能下载后用本地工具(比如IrfanView、GIMP、Photoshop)转成JPG/PNG再使用。
- 遇到URL是
.jpg/.png但实际返回WebP的情况,可以尝试手动修改URL的扩展名,或者去掉URL里的裁剪、压缩参数(比如w=1000、q=80),有时候就能拿到原始的传统格式图片。 - 浏览器更新可能会重置部分配置(比如快捷方式的启动参数),定期检查一下确保设置生效。
备注:内容来源于stack exchange,提问作者Ruslan Oblov
相关产品推荐
相关产品推荐

