Windows 10下Firefox浏览器keydown事件无法检测Alt键问题求助
Windows 10 环境 Firefox 组合按键场景下keydown事件无法检测Alt键问题
问题现象
Windows 10系统中的Firefox浏览器在组合按下其他按键时,keydown事件无法检测到Alt键,但可正常检测Shift键。Chrome和Edge两款浏览器对两个按键的检测均符合预期。
在Firefox中运行对应测试代码可发现,event.shiftKey可被正确识别,但event.altKey始终无法被检测到。而Chrome和Edge中event.altKey检测正常。
补充说明:单独按下Alt或Shift时,Chrome和Edge可触发
keydown事件,但Firefox不会,因此以上描述特指组合其他按键的场景
复现代码
<!doctype html> <html> <head></head> <body></body> <script> document.addEventListener("keydown", function(event) { console.log("Alt: " + event.altKey); console.log("Shift: " + event.shiftKey); }, false); </script> </html>
排查过程
- 过往反馈显示Firefox 69版本就存在相同问题,当时的排查结论是Firefox中使用
&&判断包含Alt在内的多按键按下状态时会出现异常 - 另有更早的同类问题反馈显示Chrome也曾出现过相同现象,根因为Chrome中按下Alt会激活窗口菜单,导致页面失焦从而
keypress事件不触发。Firefox中可能存在类似机制:如果Firefox启用了菜单栏,按下Alt会打开菜单栏的第一个选项(文件),但对应说明中提到该场景下keydown事件是可以正常触发的 - 本次测试环境为Windows 10系统下的Firefox 93.0版本,尝试在故障排除模式下打开Firefox(测试者此前对Firefox做了大量自定义配置),问题仍然存在
最终根因
已排查到问题是about:config中的privacy.resistFingerprinting配置项导致的,该配置为Firefox的反指纹追踪特性,会刻意隐藏部分按键状态避免网站通过用户输入特征追踪用户身份。
内容的提问来源于stack exchange,提问作者Isla
相关产品推荐
相关产品推荐

