浏览器信息查询
浏览器信息查询,是指读取当前浏览器的名称与版本、渲染内核、操作系统与运行环境,并逐项实测它支持哪些 Web 特性的在线工具。打开页面就能看到内核与版本、屏幕与视口、语言与时区、是否安全上下文,以及 WebGL、WebGPU、AVIF、:has() 等四十多项能力的支持结果,每项都附一句「不支持会影响什么」,一切以实测为准。全部检测在本地完成,结果不上传、不计算指纹,可一键复制成报告。
浏览器与内核
展开 UA 原文
检测中…
运行环境读数
| 字段 | 值 | 说明 |
|---|---|---|
| 语言与语言列表指纹成分 | 检测中… | 网站按它决定优先给你显示哪种语言。 |
| 时区指纹成分 | 检测中… | 来自系统时区设置,网站用它把服务器时间换算成你看到的时间。 |
| UTC 偏移指纹成分 | 检测中… | 当前时刻相对协调世界时的时差,夏令时会让它随季节变化。 |
| 屏幕与视口尺寸指纹成分 | 检测中… | 只给一行摘要;想看缩放比、断点与常见分辨率对照,去屏幕分辨率查询页。 |
| 设备像素比指纹成分 | 检测中… | 一个 CSS 像素对应几个物理像素,决定网站给你发几倍图。 |
| 色域 | 检测中… | 屏幕大致能显示的颜色范围,网站据此决定用不用广色域配色。 |
| 深色模式偏好 | 检测中… | 来自系统或浏览器的外观设置,网站据此自动切换深浅配色。 |
| 减少动画偏好 | 检测中… | 开启后,规范要求网站收敛过渡与位移动画,对晕动症友好。 |
| 主要指针类型 | 检测中… | 网站据此决定按钮做多大、要不要留悬停态。 |
| 悬停能力 | 检测中… | 触摸屏没有真正的悬停,纯靠悬停展开的菜单在手机上会点不开。 |
| 最大触点数指纹成分 | 检测中… | iPadOS 上的 Safari 在 UA 里自称桌面 Mac,但这一项通常 ≥5,是分辨它最好用的线索。 |
| 逻辑核心数指纹成分 | 检测中… | 这是浏览器愿意报的逻辑核心数,部分浏览器为防指纹会封顶,不等于 CPU 实际核心数。 |
| 设备内存档位指纹成分 | 检测中… | 规范只允许报六个档位且上限为 8,Safari 与 Firefox 出于防指纹干脆不提供。 |
| 站点存储配额 | 检测中… | 这是浏览器愿意给本站点的额度,会被粗化甚至随机化,不等于磁盘剩余空间。 |
| 在线状态 | 检测中… | 只反映浏览器认为网络接口通不通,不代表真的能访问外网。 |
| 是否安全上下文 | 检测中… | 不是安全上下文时,剪贴板、离线缓存等一整批接口会被浏览器直接关掉。 |
| 是否跨源隔离 | 检测中… | 这是页面自己的响应头设置,不是浏览器的能力,决定共享内存能不能用。 |
| Cookie 是否启用 | 检测中… | 禁用后需要登录的网站基本都会一直把你踢回登录页。 |
| 隐私信号开关指纹成分 | 检测中… | 这两个开关只是一种表态,网站遵不遵守全靠自觉,法律强制力因地区而异。 |
特性支持
| 特性 | 判定 | 探测方式 | 不支持会影响什么 |
|---|---|---|---|
| WebGL指纹成分 | 检测中… | 真实调用一次canvas.getContext('webgl') | 不支持 WebGL:网页里的 3D 地图、在线看房、模型预览会直接打不开或退回低清图片模式。 |
| WebGL 2指纹成分 | 检测中… | 真实调用一次canvas.getContext('webgl2') | 不支持 WebGL 2:在线设计工具、网页游戏会退回旧渲染路径,画质更差也更耗电。 |
| WebGPU指纹成分 | 检测中… | 接口存在性'gpu' in navigator | 不支持 WebGPU:网页里跑本地 AI 模型、高性能渲染的站点会提示换浏览器或退回 CPU 计算。 |
| OffscreenCanvas | 检测中… | 接口存在性'OffscreenCanvas' in window | 不支持离屏画布:图表、图片编辑类网页只能在主线程画,拖动和滚动时更容易卡顿。 |
| WebAssembly | 检测中… | 接口存在性'WebAssembly' in window | 不支持 WebAssembly:本站的解压缩、格式转换、哈希校验这类重活会整个用不了。 |
| 特性 | 判定 | 探测方式 | 不支持会影响什么 |
|---|---|---|---|
| WebP 图片解码指纹成分 | 检测中… | 图片解码实测BI_DECODE_SAMPLES.webp | 不支持 WebP:网站的图会退回 JPEG 或 PNG,同样清晰度下更费流量、加载更慢。 |
| AVIF 图片解码指纹成分 | 检测中… | 图片解码实测BI_DECODE_SAMPLES.avif | 不支持 AVIF:部分网站的图会退回 JPEG,同样清晰度下更费流量;少数只发 AVIF 的站点会显示裂图。 |
| JPEG XL 图片解码指纹成分 | 检测中… | 图片解码实测BI_DECODE_SAMPLES.jxl | 不支持 JPEG XL:目前几乎不影响日常上网,只有少数摄影与出版站点会用到这种格式。 |
| H.264 视频播放指纹成分 | 检测中… | 编解码器询问video/mp4; codecs="avc1.42E01E" | 不支持 H.264:绝大多数网页视频与监控回放会放不出来,这是目前最通用的视频编码。 |
| VP9 视频播放指纹成分 | 检测中… | 编解码器询问video/webm; codecs="vp9" | 不支持 VP9:部分视频站的高清档会退回更费流量的旧编码,同样画质下更卡。 |
| AV1 视频播放指纹成分 | 检测中… | 编解码器询问video/mp4; codecs="av01.0.05M.08" | 不支持 AV1:新一代省流量的高清档看不了,会自动退回 H.264 或 VP9。 |
| HEVC / H.265 视频播放指纹成分 | 检测中… | 编解码器询问video/mp4; codecs="hvc1.1.6.L93.B0" | 不支持 HEVC:手机拍的高效率格式视频、部分 4K 片源在网页里会没有画面只有声音。 |
| Web Audio 音频处理 | 检测中… | 接口存在性'AudioContext' in window | 不支持 Web Audio:在线钢琴、节拍器、变声与音频可视化这类网页会没有声音。 |
| 特性 | 判定 | 探测方式 | 不支持会影响什么 |
|---|---|---|---|
| CSS :has() 选择器 | 检测中… | 选择器查询CSS.supports('selector(:has(a))') | 不支持 :has():部分网站的选中态、折叠面板和表单联动样式会失效,看起来像点了没反应。 |
| CSS 容器查询 | 检测中… | CSS 特性查询CSS.supports('container-type', 'inline-size') | 不支持容器查询:部分网站在窄窗口或分屏下排版会错位、文字和按钮挤成一团。 |
| CSS subgrid 子网格 | 检测中… | CSS 特性查询CSS.supports('grid-template-columns', 'subgrid') | 不支持子网格:复杂表格与卡片列表的行列会对不齐,出现参差不齐的边线。 |
| CSS color-mix() 混色 | 检测中… | CSS 特性查询CSS.supports('color', 'color-mix(in srgb, red, blue)') | 不支持混色函数:部分网站的主题色、悬停变色会退回写死的颜色,深色模式下对比度变差。 |
| CSS backdrop-filter 背景模糊 | 检测中… | CSS 特性查询CSS.supports('backdrop-filter', 'blur(2px)') | 不支持背景模糊:弹窗、导航栏的毛玻璃效果会变成一块半透明色块,文字可能看不清。 |
| CSS text-wrap: balance 均衡换行 | 检测中… | CSS 特性查询CSS.supports('text-wrap', 'balance') | 不支持均衡换行:多行标题会出现最后一行只剩一两个字的难看断行,不影响功能。 |
| CSS dvh 动态视口单位 | 检测中… | CSS 特性查询CSS.supports('height', '100dvh') | 不支持动态视口单位:手机上地址栏收起时,整屏高度的页面会被截掉一截或多出一条空白。 |
| CSS @layer 级联层 | 检测中… | 接口存在性'CSSLayerBlockRule' in window | 不支持级联层:用了新写法的网站样式优先级会乱,可能出现按钮配色或间距异常。 |
| 特性 | 判定 | 探测方式 | 不支持会影响什么 |
|---|---|---|---|
| structuredClone 深拷贝 | 检测中… | 接口存在性'structuredClone' in window | 不支持结构化克隆:部分网页应用在复制大块数据时会更慢,或者直接报错退出。 |
| Intl.Segmenter 中文分词 | 检测中… | 接口存在性'Segmenter' in Intl | 不支持分词接口:中文字数统计、按词选中这类功能会退回按字符粗算,数字会有出入。 |
| Object.groupBy 分组 | 检测中… | 接口存在性'groupBy' in Object | 不支持这个新语法:用了它的网站会在旧浏览器上直接白屏或报脚本错误。 |
| Web Worker 后台线程 | 检测中… | 接口存在性'Worker' in window | 不支持后台线程:本站的批量处理、压缩解压会全部挤在主线程,页面会明显卡住。 |
| Service Worker | 检测中… | 接口存在性'serviceWorker' in navigator | 不支持它:网页的离线访问、消息推送与「安装成桌面应用」都会用不了。 |
| SharedArrayBuffer 共享内存 | 检测中… | 接口存在性'SharedArrayBuffer' in window | 不支持共享内存:网页里的多线程解码、在线视频剪辑与部分模拟器会跑不起来或退回单线程。 |
| 跨源隔离已开启 | 检测中… | 运行上下文window.crossOriginIsolated | 没有跨源隔离:共享内存与高精度计时会被浏览器降级,这是页面级设置,不是浏览器缺能力。 |
| 安全上下文(https) | 检测中… | 运行上下文window.isSecureContext | 不在安全上下文里:剪贴板、摄像头、定位、离线缓存等一整批接口会被浏览器直接关掉。 |
| 特性 | 判定 | 探测方式 | 不支持会影响什么 |
|---|---|---|---|
| Cookie 已启用 | 检测中… | 真实调用一次navigator.cookieEnabled | 禁用 Cookie:几乎所有需要登录的网站都会一直把你踢回登录页。 |
| localStorage 可写 | 检测中… | 真实调用一次window.localStorage.setItem(BI_PROBE_KEY | 本地存储写不进去:多数网站的登录状态、草稿与偏好设置会保不住,在无痕窗口下属正常现象。 |
| sessionStorage 可写 | 检测中… | 真实调用一次window.sessionStorage.setItem(BI_PROBE_KEY | 会话存储写不进去:多步表单、下单流程在刷新后会丢掉填过的内容。 |
| IndexedDB 数据库 | 检测中… | 接口存在性'indexedDB' in window | 不支持它:网页版的离线笔记、邮件客户端与大文件缓存会用不了。 |
| Cache Storage 缓存接口 | 检测中… | 接口存在性'caches' in window | 不支持缓存接口:网页应用的离线可用与二次打开秒开会失效,每次都要重新联网加载。 |
| 存储配额查询 | 检测中… | 真实调用一次navigator.storage.estimate() | 查不到配额:网站没法提前告诉你「空间不够,导出会失败」,只能等失败了才知道。 |
| 持久化存储申请 | 检测中… | 接口存在性'persist' in navigator.storage | 不支持持久化:设备空间紧张时,浏览器可能悄悄清掉网页存的离线数据。 |
| 特性 | 判定 | 探测方式 | 不支持会影响什么 |
|---|---|---|---|
| 剪贴板写入 | 检测中… | 接口存在性'writeText' in navigator.clipboard | 不能写剪贴板:本站与各类网页上的「一键复制」按钮会失效,只能手动选中再复制。 |
| 剪贴板读取 | 检测中… | 接口存在性'read' in navigator.clipboard | 不能读剪贴板:网页上的「粘贴图片」按钮会用不了,只能用键盘粘贴或拖拽文件。 |
| Web Share 系统分享 | 检测中… | 接口存在性'share' in navigator | 不支持系统分享:手机上点网页的「分享」不会唤起微信、短信那一排系统分享面板。 |
| 通知接口存在 | 检测中… | 接口存在性'Notification' in window | 没有通知接口:网页版聊天、日程提醒不会弹系统通知,切走就收不到提示。 |
| 全屏接口 | 检测中… | 接口存在性'requestFullscreen' in Element.prototype | 不支持全屏:网页视频、在线演示的全屏按钮会没反应,只能最大化窗口凑合。 |
| 画中画 | 检测中… | 接口存在性'pictureInPictureEnabled' in document | 不支持画中画:没法把网页视频缩成小窗浮在其他窗口上边看边干别的。 |
| 屏幕唤醒锁 | 检测中… | 接口存在性'wakeLock' in navigator | 不支持唤醒锁:看菜谱、看谱子、跟练视频时屏幕会到点自己息屏,得不停去点一下。 |
| 振动接口指纹成分 | 检测中… | 接口存在性'vibrate' in navigator | 不支持振动:手机网页里的按键震动反馈、倒计时结束提醒会没有触感反馈。 |
| Gamepad API 手柄接口 | 检测中… | 接口存在性'getGamepads' in navigator | 不支持手柄接口:网页游戏与手柄测试类页面读不到你的手柄,只能用键鼠操作。 |
| 媒体设备接口存在指纹成分 | 检测中… | 接口存在性'mediaDevices' in navigator | 没有媒体设备接口:网页视频会议、在线摄像头与麦克风测试会直接不可用。 |
导出报告
报告在你的浏览器本地生成,点击才导出,不会上传;没点过「读取详细版本号」时, 报告里不含完整版本号、机型与架构这些高熵字段。
怎么读这四种判定
| 判定 | 含义 | 典型来源 |
|---|---|---|
| 支持 | 接口存在且实测可用 | 接口存在性为真、选择器查询返回 true、图片解码成功、编解码器回答 probably |
| 部分支持 | 能用但有条件,或浏览器自己也不敢打包票 | 编解码器只回答 maybe;接口存在但当前上下文不满足(要 https、要跨源隔离) |
| 不支持 | 接口不存在,或实测失败 | 接口存在性为假、编解码器回答空串、图片解码走了 onerror |
| 无法判定 | 这次没能判出来,不代表不支持 | 探测抛错、异步探测超时,或当前浏览器连判定所需的接口都没有 |
| 探测方式 | 怎么问 | 必须知道的坑 |
|---|---|---|
| 接口存在性 | 用 'gpu' in navigator 这类写法看接口在不在 | 存在不等于可用:剪贴板接口在非安全上下文里整个不存在,通知接口存在但可能早被拒绝。所以凡是「存在但受限」的项,本页判部分支持并写清受什么限制 |
| CSS 特性查询 | 用 CSS.supports('属性', '值') 双参形式问浏览器认不认这条声明 | 双参形式最稳;单参形式对某些声明会误判,本页一律用双参 |
| 选择器查询 | 用 CSS.supports('selector(:has(a))') 问浏览器认不认这个选择器 | 测选择器必须包一层 selector()。直接把选择器塞进单参形式,在所有浏览器上都会返回假,会把一个明明支持的新版浏览器报成不支持——这是同类工具最常见的错误 |
| 编解码器询问 | 用视频元素的 canPlayType 问它能不能播这条编码 | 返回值只有三种:空串、maybe、probably,规范就没给「一定能播」。所以本页把 maybe 如实映射成部分支持,不四舍五入。更准的判断要用异步的解码能力查询接口,一期不做 |
| 图片解码实测 | 载入一张内联的 1 像素图片,等它 onload 还是 onerror | 不能用画布导出反推:浏览器不支持某种编码时会静默回退成 PNG,「没抛错就是支持」会全线误判;而且编码支持不等于解码支持,用户关心的是解码 |
| 真实调用一次 | 真的写一次读一次再删掉,看会不会抛错 | 必须包 try/catch:无痕窗口、第三方框架内、站点数据被禁用时会直接抛异常。探测写入的 key 固定且在 finally 里删干净,不留垃圾 |
| 运行上下文 | 读运行上下文的两个布尔值:是不是安全上下文、有没有跨源隔离 | 这两个直接决定一批接口可不可用,所以排在特性表前面——它们就是「为什么某些项显示部分支持」的答案 |
如何使用浏览器信息查询
直接打开本页,页面会自动读取浏览器与内核版本、系统与运行环境,并开始逐项检测能力支持情况;图片解码那几项是异步的,会先显示「检测中」再填结果。
往下看「特性支持」,勾上「只看不支持的」就能一眼找出这台设备缺哪些能力,每一项后面都写了不支持会影响什么;上方的总览计数始终按全部 46 项统计,不随筛选变化。
需要发给客服或贴进 issue 时,点「复制文本报告」或「下载报告」,报告在你的浏览器本地生成、不会上传;想要完整版本号、机型与架构这些高熵字段,得再点一下「读取详细版本号」。
关于浏览器信息查询的常见问题
- 浏览器信息查询是免费的吗需要注册吗
- 免费,不需要注册也不需要安装插件,打开就能用。这是一个纯前端的免费浏览器检测工具:浏览器与内核版本的识别、四十多项能力的实测、报告的生成与导出,全部在你自己的设备上完成。页面上没有任何输入框,也没有账号体系,所以既没有可以泄漏的输入内容,也没有需要你注册的理由。在线浏览器检测这件事本来就不该要账号。
- 浏览器信息查询会上传我的设备信息吗
- 不会。本页读到的浏览器版本、语言时区、屏幕尺寸与能力判定结果只在你这台设备的内存里参与展示,浏览器信息不上传、不落盘、也不计算任何指纹哈希或稳定标识。落到本机存储的只有两项展示偏好:哪些分组被折叠、有没有勾选只看不支持的,里面一个检测值都没有。报告也是点了按钮才在本地生成的,不点就不会存在。
- 怎么查我的浏览器是什么内核和版本
- 打开本页最上面那张卡就是答案:浏览器名与版本、渲染内核与系统会直接列出来。浏览器版本怎么看这个问题,在设置页里往往藏得很深,手机上更难找,所以做成一页直接显示。要注意的是这一段读的是 UA 字符串,属于浏览器的自称;Chromium 系的 UA 主版本被刻意冻结过,想要完整版本号得点一下「读取详细版本号」。
- 浏览器特性支持检测结果准不准
- 这里测的是「你这个浏览器现在能不能」,不是「这个版本一般能不能」,所以结果会受扩展、企业策略、无痕模式、是否 https 与所在页面上下文影响。同一个浏览器在无痕窗口里本地存储可能就是写不进去,那是正常现象不是故障。另外编解码器那几项只能拿到浏览器的三种回答,其中一种是「可能可以」,本页如实映射成部分支持,不四舍五入。
- 我的浏览器支不支持 WebGL 怎么查
- 在下面的「图形与计算」分组里直接看那一行判定就行。本页的 WebGL 支持检测不是读 UA 猜的,而是真的去创建一次绘图上下文,拿到了才算支持。同一组里还有 WebGL 2、WebGPU 与 WebAssembly 支持检测。如果显示不支持,最常见的原因是显卡驱动太旧或浏览器里关掉了硬件加速,而不是浏览器版本不够新,可以先去设置里找硬件加速那一项。
- 浏览器支不支持 AVIF 图片怎么检测
- 本页的 AVIF 支持检测是载入一张内联的一像素样图,等它到底解出来还是失败。这里有个同类工具常踩的坑:用画布导出反推是错的,浏览器不支持某种编码时会静默回退成 PNG,看起来没报错就被当成支持了,而且编码支持不等于解码支持。不支持 AVIF:部分网站的图会退回 JPEG,同样清晰度下更费流量;少数只发 AVIF 的站点会显示裂图。同一组里还有 WebP 支持检测与 JPEG XL 解码。
- 手机浏览器能做浏览器信息查询吗
- 可以,手机上的检测项与桌面完全一致,只是能测到的结果天然不同:移动端没有 WebGPU 的比例更高、通常读不了剪贴板、站点存储配额也更小,这些不是故障。手机上还有一个有意思的现象值得对照着看:iPadOS 上的 Safari 在 UA 里自称桌面 Mac,但最大触点数通常是五个以上,光看 UA 会判错,看实测就不会。
- 浏览器信息查询和 UA 解析有什么区别
- 两件事,可以配合着用。UA 解析处理的是「任意一条 UA 字符串」,能批量解析日志、识别爬虫、逐个词讲解,本站的 User-Agent 解析页专门做这个。本页不提供输入框、不做批量与日志解析,只处理你当前这一条,重点在后面那大半页的能力实测。一句话概括:UA 解析回答「这条字符串自称是谁」,浏览器特性检测回答「这台设备现在到底能干什么」。
- 查浏览器信息会被用来做浏览器指纹吗
- 不会,而且本页反过来把这件事讲清楚。浏览器指纹是什么?它指的是网站把 UA、语言、时区、屏幕尺寸、逻辑核心数这些字段组合起来,拼出一个能认出你的标识。本页展示的确实就是这些字段,所以做了三件事:逐个打上「指纹成分」标记、把完整版本号这类高熵字段设计成点一下才读、以及绝不计算任何哈希。不做画布指纹,也不枚举字体与设备。
- 浏览器版本号和 UA 里写的不一样正常吗
- 正常。Chromium 系浏览器为了减少指纹面,把 UA 里的版本号刻意冻结了,次版本号一律写成 0,完整版本只在 Client Hints 里给。另外还有两种常见错位:各家壳浏览器与 Edge 的 UA 里都带 Chrome 字样,所以「UA 里有 Chrome」不等于「就是 Chrome」;iPadOS 上的 Safari 会自称桌面 Mac。这三处正是本页强调一切以实测为准的原因。
- 浏览器特性检测显示检测中或未知怎么办
- 「检测中」出现在图片解码与存储配额这几项异步探测上,它们要等浏览器真的把样图解出来才有结论,超过一秒半没回就会转成无法判定。「无法判定」表示这次没测出来,不代表不支持——常见原因是探测抛了异常、探测超时,或者这个浏览器连判定所需的接口都没提供。遇到无法判定可以点一下「重新检测」再跑一轮。
- 浏览器信息查询能查到我的 IP 地址吗
- 查不到,本页也不打算查。IP 地址不是浏览器提供的字段,必须向服务器发一次请求才能知道,而本页的检测全部在本地完成,不为查询你的信息发任何请求。要查公网 IP 与归属地请去本站的 IP 地址查询页,那个工具会明确告诉你它需要联网。本页也不做本地网络地址探测,那种做法属于绕过用户意愿的信息采集。
浏览器信息查询怎么用与结果怎么读
浏览器信息查询能看到哪些内容
很多人搜的是查浏览器信息、浏览器检测、浏览器版本查询或者我用的是什么浏览器,说的都是同一件事。本页把它拆成四块并排摆出来: 浏览器与内核、运行环境读数、46 项能力实测、报告导出。做浏览器内核查询时, 你会看到内核名与版本单独成行——常见的三种是 Blink 内核(Chrome、Edge 与多数国产壳)、WebKit 内核(Safari)与 Gecko 内核(Firefox)。 想知道浏览器是什么内核,看这一行就够了;要回答我的浏览器版本是多少, 或者客服让你查浏览器版本发过去,同样是这张卡。
运行环境这一块回答的是浏览器运行环境与浏览器语言时区这类问题: 语言列表、时区与 UTC 偏移、屏幕与视口摘要、色域、深色模式与减少动画偏好、指针类型、 最大触点数、逻辑核心数、设备内存档位、在线状态、安全上下文与跨源隔离、Cookie 是否启用。 其中设备像素比查询与逻辑核心数查询各占一行, 取不到的字段一律显示一个破折号,表示当前浏览器不提供,绝不显示 0、也不猜一个值填上。
- 实测而不是猜 UA
- 每一项都真的去问浏览器一次,而不是按版本号查表下结论;UA 可以被伪装、可以被冻结,能不能用只有实测算数。
- 46 项逐项给影响说明
- 不只给一个红叉,而是把接口名翻译成后果:不支持这一项,你上网的时候具体会遇到什么。这一列是本页最有价值的内容。
- 四态判定,含部分支持与无法判定
- 「能用但有条件」和「这次没测出来」都单独成一档,不并进支持也不并进不支持——并进去的那一刻,用户按结论去用就会翻车。
- 每项标注探测方式
- 每一行都写明我们用的是哪种测法,并把这种测法的坑公开出来,你可以照着自己复核,不用信我们一句话。
- 高熵字段打标且默认不索取
- 属于常见指纹成分的字段都打了标;完整版本号、机型与架构这三项要你点一下才读,默认不取。
- 一键导出报告
- 浏览器信息报告导出支持文本与 JSON 两种格式,本地生成、点击才导出,适合发给客服或贴进 issue;不点就什么都不会生成。
特性支持的四种判定与探测方法
做浏览器特性检测、浏览器兼容性检测或者浏览器支持检测时, 最怕的就是把三件不同的事压成一个对勾。所以本页给四种判定,含义写在下面这张表里。 需要特别说明的是「部分支持」不是和稀泥,它精确对应两类真实情况:一是浏览器自己只肯回答 「可能可以」;二是接口存在但当前上下文不满足,比如 SharedArrayBuffer 共享内存 在没有跨源隔离时会被降级。
| 判定 | 含义 | 典型来源 |
|---|---|---|
| 支持 | 接口存在且实测可用 | 接口存在性为真、选择器查询返回 true、图片解码成功、编解码器回答 probably |
| 部分支持 | 能用但有条件,或浏览器自己也不敢打包票 | 编解码器只回答 maybe;接口存在但当前上下文不满足(要 https、要跨源隔离) |
| 不支持 | 接口不存在,或实测失败 | 接口存在性为假、编解码器回答空串、图片解码走了 onerror |
| 无法判定 | 这次没能判出来,不代表不支持 | 探测抛错、异步探测超时,或当前浏览器连判定所需的接口都没有 |
HTML5 支持检测这个说法在中文里流传很广,很多人直接搜 HTML5 测试。 本页覆盖的范围比那个老说法宽:除了图形与媒体,还包括 CSS 特性、JavaScript 与平台能力、 存储与设备接口。具体到常搜的那几项,页面上都有独立一行:WebGL 支持检测、WebGPU 支持检测、WebAssembly 支持检测、AVIF 支持检测、WebP 支持检测、CSS has 支持与容器查询支持、Service Worker 支持与 SharedArrayBuffer 支持、跨源隔离检测与安全上下文检测、localStorage 可用检测与存储配额查询。
| 分组 | 项数 | 代表项 |
|---|---|---|
| 图形与计算 | 5 | WebGL / WebGL 2 / WebGPU |
| 图片与媒体 | 8 | WebP 图片解码 / AVIF 图片解码 / JPEG XL 图片解码 |
| CSS 特性 | 8 | CSS :has() 选择器 / CSS 容器查询 / CSS subgrid 子网格 |
| JavaScript 与平台 | 8 | structuredClone 深拷贝 / Intl.Segmenter 中文分词 / Object.groupBy 分组 |
| 存储 | 7 | Cookie 已启用 / localStorage 可写 / sessionStorage 可写 |
| 设备与交互 | 10 | 剪贴板写入 / 剪贴板读取 / Web Share 系统分享 |
下面这张表是本页的第三个原创信息点:把我们用的每一种测法和它的坑一起摆出来。 其中三条是同类工具最常写错的地方——测选择器必须包一层 selector 函数, 直接把选择器塞进单参形式在所有浏览器上都会返回假;用画布导出反推图片格式支持是错的, 不支持时它会静默回退成 PNG;编解码器查询的肯定回答只有两种,其中一种只承诺「可能」。
| 探测方式 | 怎么问 | 必须知道的坑 |
|---|---|---|
| 接口存在性 | 用 'gpu' in navigator 这类写法看接口在不在 | 存在不等于可用:剪贴板接口在非安全上下文里整个不存在,通知接口存在但可能早被拒绝。所以凡是「存在但受限」的项,本页判部分支持并写清受什么限制 |
| CSS 特性查询 | 用 CSS.supports('属性', '值') 双参形式问浏览器认不认这条声明 | 双参形式最稳;单参形式对某些声明会误判,本页一律用双参 |
| 选择器查询 | 用 CSS.supports('selector(:has(a))') 问浏览器认不认这个选择器 | 测选择器必须包一层 selector()。直接把选择器塞进单参形式,在所有浏览器上都会返回假,会把一个明明支持的新版浏览器报成不支持——这是同类工具最常见的错误 |
| 编解码器询问 | 用视频元素的 canPlayType 问它能不能播这条编码 | 返回值只有三种:空串、maybe、probably,规范就没给「一定能播」。所以本页把 maybe 如实映射成部分支持,不四舍五入。更准的判断要用异步的解码能力查询接口,一期不做 |
| 图片解码实测 | 载入一张内联的 1 像素图片,等它 onload 还是 onerror | 不能用画布导出反推:浏览器不支持某种编码时会静默回退成 PNG,「没抛错就是支持」会全线误判;而且编码支持不等于解码支持,用户关心的是解码 |
| 真实调用一次 | 真的写一次读一次再删掉,看会不会抛错 | 必须包 try/catch:无痕窗口、第三方框架内、站点数据被禁用时会直接抛异常。探测写入的 key 固定且在 finally 里删干净,不留垃圾 |
| 运行上下文 | 读运行上下文的两个布尔值:是不是安全上下文、有没有跨源隔离 | 这两个直接决定一批接口可不可用,所以排在特性表前面——它们就是「为什么某些项显示部分支持」的答案 |
为什么 UA 自称和实测能力会对不上
这是本页最想讲清楚的一件事。UA 字符串是浏览器的自称,Client Hints 是结构化的自称, 只有特性探测才是实测。三者本页并排摆出来,而不是混成一句结论,因为它们经常对不上。 做浏览器内核检测时如果只看 UA,至少有三处已知失真会让你得出错误结论:
- iPadOS 的 Safari 自称桌面 Mac
- UA 里写的是 Macintosh,按 UA 判就是桌面设备;但最大触点数通常是五个以上,实测一眼就能分辨。
- Chromium 系的版本被刻意冻结
- UA 里的次版本号一律是 0,主版本也可能被冻结在某个值上。真实的完整版本号只在 Client Hints 里,要点一下才读。
- 各家壳浏览器的 UA 里都带 Chrome
- Edge、Opera 与多数国产浏览器的 UA 里都有 Chrome 字样,所以「UA 里有 Chrome」不等于「就是 Chrome」,得看品牌列表。
所以本页的口径始终是一切以实测为准,UA 只作参考。 顺带说清另一类常见混淆:查兼容性表格的站点回答的是「某个浏览器版本一般支不支持」, 也就是大家常说的 caniuse 那种查法;本页回答的是「你这台设备现在支不支持」。 前者适合写代码时定兼容目标,后者适合排查「为什么我这打不开」。两个问题,两种工具。
本页字段与浏览器指纹的关系
必须说明白:本页展示的 UA、语言、时区、屏幕尺寸、设备像素比、逻辑核心数与能力支持组合,就是常见的浏览器指纹成分。正因为如此,本站的做法是把它们只显示在你的设备上, 并在页面里逐个打上「指纹成分」标记,让你知道自己每次上网都在无意间提供了哪些信息。 这就是浏览器信息不上传这条承诺的具体含义:不上传、不落盘、不计算任何指纹哈希或稳定标识。
- 不做的事,一条条写清楚
- 不申请任何权限,不调用摄像头与麦克风采集接口,不枚举设备清单,不弹通知授权,不读定位;不做本地网络地址探测;不做画布、音频与字体枚举这类指纹采集;不取显卡渲染器字符串。
- 本机只存两项展示偏好
- 哪些分组被折叠、有没有勾选只看不支持的,就这两项,里面不含 UA、不含任何检测值,更不含报告内容。
- 高熵字段要你点一下才读
- 完整版本号、系统版本、机型与架构默认不取。默认索取等于替你扩大指纹面,所以做成按钮——这个设计本身就是页面想传达的一个观点。
- 报告点了才生成
- 文本与 JSON 报告都在本地现算,首行固定写着本地生成未上传;没点过那个按钮时,报告里连完整版本号都不会有。
最后交代两处口径,免得把话说满:本页的统一表述是「全程浏览器本地运行、数据不上传」, 而不是「一个请求都不发」——站点根布局带有匿名访问量统计,说后者就是与事实不符。 另外本页做的是当前设备的能力实测,不是安全体检,也不承诺识别出所有浏览器; 扩展、企业策略与无痕模式都会改变结果,同一台机器换个窗口再测就可能不一样,这是正常的。
英文界面里这类工具常写作 browser info 或 browser detect, 能力检查那一块也常被叫作 html5 test;查「某个版本一般支不支持」的兼容性表格站点则是 caniuse。 名字不同,本页做的是其中「你这台现在支不支持」的那一半。 想深挖 UA 字符串本身,或者想看屏幕分辨率与缩放比的细节,可以去上面列出的相关工具。CSS :has() 选择器与 localStorage 可写 这两项的判定说明里也写清了各自的边界。