Javascript 防止Alt+;切换默认操作或检测多种操作系统语言

Javascript 防止Alt+;切换默认操作或检测多种操作系统语言,javascript,preventdefault,Javascript,Preventdefault,我打算提示我的用户为我网站的某个特定方面按住Alt+Shift键。编写脚本后,我发现在启用多种语言的Windows中,这会在它们之间切换,这对用户来说是不可取的 理想情况下,我希望在这个特定的网页上防止这种默认切换,或者首先检查windows上是否启用了多种语言。据我所知,这两种方法都不可能做到 以下情况不会阻止切换: e.preventDefault ? e.preventDefault() : event.returnValue = false; 这仅检测浏览器中的语言,而不检测操作系统:

我打算提示我的用户为我网站的某个特定方面按住Alt+Shift键。编写脚本后,我发现在启用多种语言的Windows中,这会在它们之间切换,这对用户来说是不可取的

理想情况下,我希望在这个特定的网页上防止这种默认切换,或者首先检查windows上是否启用了多种语言。据我所知,这两种方法都不可能做到

以下情况不会阻止切换:

e.preventDefault ? e.preventDefault() : event.returnValue = false;
这仅检测浏览器中的语言,而不检测操作系统:

navigator.languages ? navigator.languages[0] : (navigator.language || navigator.userLanguage)

该组合键被Windows截获,它永远不会到达浏览器,因此在网站内您无法执行任何操作。浏览器甚至不知道这个功能,所以你也不能检查它。请选择不同的组合键。

恐怕这是正确的。Mac OS X上的默认Cmd空间也有同样的功能(尽管Mac OS不使用应用程序中的Cmd修改器很容易避免系统快捷方式),谢谢,我怀疑是这样。你检查过这个吗:你把语言弄糊涂了(可以在浏览器级别或用户级别设置,这是您在
navigator.language
中获得的)和键盘映射(始终在操作系统用户级别设置)。它们不必相同,甚至不必与区域设置相同。例如,我可以将我的系统设置为与Mac上的物理AZERTY键盘相匹配,以英语显示UI,并根据我旅行的地点显示日期、货币和时区。