我们正在使用以下代码为IE中的onKeyPress事件分配新的密钥代码:
window.event.keyCode=65
在IE中,这会更改链中其他事件处理程序所接收的密钥,但此代码在chrome中不起作用。有没有办法做到这一点?
示例HTML:
<input type="text" name="hotelfloornew" id="hotelfloornew"
onkeypress="uPPer();" size="25" />
相应的JS:
function uPPer()
{
switch (window.event.keyCode)
{
case 97:window.event.keyCode=65;break;
case 98:window.event.keyCode=66;break;
case 99:window.event.keyCode=67;break;
case 100:window.event.keyCode=68;break;
.
.
.
}
}
答案 0 :(得分:3)
IE会分配一个全局事件值,但这不是规范化的。在其他浏览器中,使用提供给回调的值:
window.onkeypress = function(event) {
console.log(event.keyCode);
}
答案 1 :(得分:1)
更改事件的keyCode
属性是一个严重的黑客攻击,只能在旧的IE中使用。它应该是只读的,并且在所有合理的浏览器中。不要这样做。
如果您需要更改按键的效果,请阻止其默认操作并手动执行您自己的替换操作。如果要将键入的字符映射到其他字符you can use code I've published before on Stack Overflow。
答案 2 :(得分:0)
function doKey(e) {
evt = e || window.event; // compliant with ie6
alert(evt.keyCode+' Pressed');
}
window.event.keyCode主要用于IE ...这是一个示例代码,它将提醒所有导航器中按下的keyCode。