Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AltGr被视为Alt+;Ctrl键_Javascript_Linux_Windows_Input_Keyboard - Fatal编程技术网

Javascript AltGr被视为Alt+;Ctrl键

Javascript AltGr被视为Alt+;Ctrl键,javascript,linux,windows,input,keyboard,Javascript,Linux,Windows,Input,Keyboard,在windows上,我希望AltGr键能够成功地合成变音字符,但从幕后看,windows AltGr键相当于Alt+Ctrl,这一点从这里可以明显看出[1](使用该工具解释本页上的键盘事件)。这是仅在windows上的行为;在linux上,AltGr不是这样拆分为Alt+Ctrl的 在windows上的这种情况下,如何区分正常的AltGr操作和Alt+Ctrl操作 [1] 在中,您可以使用确定是按左键还是右键(在您的情况下,右键是AltGr) document.getElementById(“

在windows上,我希望AltGr键能够成功地合成变音字符,但从幕后看,windows AltGr键相当于Alt+Ctrl,这一点从这里可以明显看出[1](使用该工具解释本页上的键盘事件)。这是仅在windows上的行为;在linux上,AltGr不是这样拆分为Alt+Ctrl的

在windows上的这种情况下,如何区分正常的AltGr操作和Alt+Ctrl操作

[1]

在中,您可以使用确定是按左键还是右键(在您的情况下,右键是AltGr)

document.getElementById(“测试”).addEventListener(“键控”,函数(e){
//对于演示中的漂亮输出
变量位置={“1”:“左”,“2”:“右”};
var键={“17”:“Ctrl”,“18”:“Alt”};
//检查e.keyCode和e.location
document.getElementById(“测试”)。值=
“键:+(键[e.keyCode]| | e.keyCode)+
“,位置:”+(位置[e.Location]| | e.Location);
e、 预防默认值();
});
document.getElementById(“test”).focus()

<代码>
好吧,它仍然不适合我的用例。做一个CTRL+altL+会给你位置=0。类似地,执行AltGr+也会得到location=0。在这种情况下,我该如何区分呢?当然,我可以检测到之前对ctrl或alt的调用,并使用location属性检查是否按了左键或右键ctrl/alt。这就是我要建议的,因为我认为没有一种便携式方法可以将它们检测为修改键。我知道有些东西只在(旧的?)IE中工作,而其他方式在Linux上的结果与在Windows上的不同,等等。。。事实上,在Windows中,在大多数情况下,甚至可以使用Ctrl+Alt+something,就像使用AltGr+something一样(这是因为以前有没有AltGr的键盘),例如,我可以使用Ctrl+Alt+ß在我的德语键盘上输入“-”。