在输入框或 contenteditable=true div 中,如何修改字母“a”的按键以返回字母“b”的按键?即,每次在 div 中键入字母“a”时,输出的实际上是字母“b”。
我不太关心适用于 IE 的解决方案——只是适用于 Safari、Chrome 和 FF 的解决方案。
在 Chrome 中,我可以看到按键事件具有属性“charCode”、“keyCode”和“which”,所有这些都被分配了按键事件编号。如果我在按键上触发事件,我可以修改这些值,但我无法弄清楚要返回什么,以便输入的实际键不同。例如:
$(window).keypress(function(e){ //$(window) is a jQuery object
e.charCode = 102;
e.which = 102;
e.keyCode = 102;
console.log(e);
return e;
});
我还可以看到,除了 charCode、which 和 keyCode,还有一个“originalEvent”属性,而该属性又具有这些属性。但是,我无法修改这些(我尝试使用 e.originalEvent.charCode = 102 之类的东西)。