有没有办法在 Firefox 中检测客户端的键盘布局?
我知道 Chrome 的答案是肯定的(请参阅 https://developer.mozilla.org/en-US/docs/Web/API/Navigator/keyboard):
navigator.keyboard.getLayoutMap().then(function(k) { console.log(k.get('KeyQ')); }); // A or Q gives a hint about the layout
其他浏览器(Firefox、Safari等)还有其他方法吗?
目前无法在 Firefox 中通过 Javascript 检测键盘布局。
该功能目前在基于 Chromium 的浏览器中处于实验阶段。对于 Firefox,您可以在此处跟踪进度:https://bugzilla.mozilla.org/show_bug.cgi?id=1469017
截至今天,该错误的最后更新时间为 2020 年 6 月 5 日。该帖子中最后的重要帖子之一说道:
[...] 暴露此信息确实是强大的指纹来源。最后,苹果已经拒绝了。所以,我认为我们不需要这个 API。
您可以在此处关注 Mozilla 对此 API 的官方立场:https://mozilla.github.io/standards-positions/#keyboard-map
目前它被归类为“有害”,并指出:
我们担心这会暴露键盘布局,而键盘布局似乎是指纹识别数据的重要来源,而且不需要任何用户交互。
我预计在可预见的将来 Firefox 不会支持此功能。