HTML无法直接读取散热片温度,必须通过本地服务(如Node.js API)或桌面框架(如Tauri/Electron)桥接系统传感器数据。

HTML 本身没有“批处理函数工具”,也不具备读取或控制硬件散热片的能力。所谓“根据散热片规格选择HTML工具”是个根本性误解——浏览器运行在沙盒环境中,无法访问 CPU 温度传感器、风扇 PWM 接口,更不会识别散热器底座材质或热管数量。
你真正需要的,是把硬件温度数据从系统层桥接到网页界面的可行路径。下面分几个实际能落地的技术点说明:
为什么不能用纯 HTML/JS 直接读散热片温度
浏览器禁止直接调用 sensors、wmic、istats 等系统命令,也无权访问 SMBus/I²C 总线上的传感器芯片(如 NCT7904、ADM1032)。所有宣称“HTML 查温度”的方案,背后必然依赖一个本地运行的服务进程做代理。
Node.js + express 搭建本地温度 API 是最简路径
这是开发调试阶段最快见效的方式,适合个人项目或内网监控页:
立即学习“前端免费学习笔记(深入)”;
- 在本地运行
node server.js,用child_process.exec调用系统命令(Linux 用sensors -j,Windows 用wmic /namespace:\rootwmi PATH MSAcpi_ThermalZoneTemperature get CurrentTemperature,macOS 用istats cpu temp --value) - API 返回结构化 JSON,例如
{"cpu": 62.5, "gpu": 58.2, "unit": "°C"} - HTML 页面用
fetch('http://localhost:3000/api/temp')定时轮询,配合setInterval更新 DOM - 注意:Windows 的
wmic返回值是千分之一开尔文,需换算:(value / 10 - 273.15).toFixed(1)
Electron/Tauri 中调用系统传感器模块才是生产级解法
如果你做的不是普通网页,而是桌面应用(比如带 UI 的硬件监控工具),就该放弃纯前端思路:
- Tauri 项目中定义 Rust 命令
get_cpu_temperature,底层调用sysinfo::System::new_all()获取各核心温度 - Electron 中用
node-child-process或ffi-napi加载 C++ 插件,绕过 Node.js 的安全限制 - 关键点:这些框架允许渲染进程执行特权操作,但必须显式声明权限,且打包后仍需用户授权(如 macOS 的“辅助功能”权限)
- 别指望靠改 HTML 的
<script>标签就能绕过这些限制——浏览器引擎不认你写的“散热片规格”参数
WebUSB 不适用于主板内置传感器
WebUSB 只能连外置 USB 设备(如 TEMPer 系列温度计),对 CPU/GPU 散热片底下的 NTC 热敏电阻完全无效:
- 主板传感器走的是 LPC、SMBus 或 PCH 内部总线,物理上没 USB 接口
- 即便有 USB 温度棒,也要设备固件支持标准 HID 协议,否则
navigator.usb.requestDevice()找不到目标 - Chrome 会要求用户手动点击授权,无法静默获取——不适合后台自动轮询场景
真实难点不在“怎么写 HTML”,而在于:你是否愿意接受一个本地服务进程的存在;是否能说服终端用户关闭浏览器安全策略或授予权限;以及能否处理不同系统下传感器路径、单位、精度的碎片化差异。这些都不是改几行 fetch 就能解决的。



















