相关疑难解决方法(0)

更改按键

在输入框或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;
});
Run Code Online (Sandbox Code Playgroud)

我还可以看到,除了charCode,和keyCode之外,还有一个"originalEvent"属性,而这个属性又具有这些属性.但是,我无法修改那些(我试过像e.originalEvent.charCode = 102这样的东西).

javascript jquery events keypress keydown

24
推荐指数
3
解决办法
4万
查看次数

如何更改Firefox中键入的字符

我需要在文本输入中更改字符'.' 输入时'',' 在IE中,我更改了keypress事件中的keyCode事件属性,就像这样

document.getElementById('mytext').onkeypress = 
 function (evt) {
  var e = evt || window.event;
  if (e.keyCode && e.keyCode==46)
   e.keyCode = 44;
  else if (e.which && e.which==46) {
   e.which = 44;
  }
 };
Run Code Online (Sandbox Code Playgroud)

但它表明,在Firefox中,不可能更改键事件中键入的字符.有什么建议?

javascript javascript-events

6
推荐指数
1
解决办法
5944
查看次数

显示谷歌浏览器中键入的键盘字符

我正在开发一个javascript键盘,试图让用户输入各种非洲语言.目前,这在IE8和Firefox中运行良好但不是谷歌浏览器,我实际上只是坚持这个.我想要完成的是例如,键入(在我的物理键盘上)' q '(keyCode = 113)并获得' ɛ '(keyCode = 603)作为输出,但目前,我的代码在谷歌浏览器中没有任何作用.我的代码的相关部分如下:

var k_layouts = {};  
k_layouts.Akan = {88:390,113:603};//keyCode mappings for Akan language    
k_layouts.Ga = {120:596,81:400};//keyCode mappings for Ga language  
var current_layout = "";  

//function that maps the keyCode of a **typed** key to that of the **expected** key    
function map_key_code(keycode){  
    if(k_layouts[current_layout] && k_layouts[current_layout][keycode])  
        return k_layouts[current_layout][keycode];  
    return keycode;  
}  

//function that actually changes the keyCode of a **typed** key to the **expected** value
function handle_keypress(ev){  
    var ev = ev || window.event;  
    if(ev.bubbles != …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome

2
推荐指数
1
解决办法
4100
查看次数