如何在Greasemonkey(用户脚本)中获取笔记本电脑硬件信息?
Greasemonkey能否获取MacBook硬件信息?
嘿,这个问题挺接地气的!我来给你梳理下Greasemonkey(现在更多人用Tampermonkey这类更活跃的用户脚本管理器)能拿到哪些你要的MacBook信息,以及它的局限:
首先得明确:用户脚本是运行在浏览器的沙箱环境里的,为了安全,浏览器不会允许脚本直接访问系统底层的硬件数据,所以很多你要的信息没法直接获取,但有些可以通过浏览器暴露的API间接拿到:
可以获取的信息
显示分辨率
这个完全没问题!利用浏览器的window.screen对象就能拿到,结合设备像素比还能算出物理分辨率:
// 获取逻辑分辨率 const logicalWidth = screen.width; const logicalHeight = screen.height; // 获取设备像素比,计算物理分辨率 const pixelRatio = window.devicePixelRatio; const physicalWidth = logicalWidth * pixelRatio; const physicalHeight = logicalHeight * pixelRatio; console.log(`逻辑分辨率:${logicalWidth}x${logicalHeight}`); console.log(`物理分辨率:${physicalWidth}x${physicalHeight}`);
浏览器运行时长(非系统运行时长)
浏览器没有直接提供系统运行时长,但可以通过performance API估算当前浏览器标签页的运行时长:
const browserTabUptime = Math.floor((Date.now() - performance.timing.navigationStart) / 1000); console.log(`当前标签页已运行:${browserTabUptime}秒`);
注意:这只是浏览器标签页的运行时间,不是MacBook整个系统的开机时长哦。
无法直接获取的信息
MacBook型号、CPU型号、内存容量、显卡信息这些都属于系统级硬件数据,浏览器沙箱没有权限访问,单纯的Greasemonkey脚本也没法突破这个限制。
如果一定要拿到这些信息,你得换个思路:比如写一个Mac原生脚本(比如AppleScript或Python),然后通过浏览器扩展(不是用户脚本)的Native Messaging功能来调用这个原生脚本,实现系统数据的读取。但这已经超出了用户脚本的能力范围了。
内容的提问来源于stack exchange,提问作者user6410654
相关产品推荐
相关产品推荐

