Javascript.which.fromCharCode字母相当于特殊字符的charcodes

Javascript.which.fromCharCode字母相当于特殊字符的charcodes,javascript,oop,typography,fromcharcode,Javascript,Oop,Typography,Fromcharcode,我正在学习面向对象的javascript。由于我对排版很感兴趣,我正在制作一个OO-js简单的HTML类型编辑器,它可以监听按键的“持续时间”,以便用特定的字体变化修改每个字母的重量 到目前为止,我有一个可以在codepen上看到的工作版本:只需在键盘上以不同的持续时间键入几个字母就可以了 我的js文件的代码示例(参见codepen上的完整代码): // ... // get duration of the key pressed event var duration =

我正在学习面向对象的javascript。由于我对排版很感兴趣,我正在制作一个OO-js简单的HTML类型编辑器,它可以监听按键的“持续时间”,以便用特定的字体变化修改每个字母的重量

到目前为止,我有一个可以在codepen上看到的工作版本:只需在键盘上以不同的持续时间键入几个字母就可以了

我的js文件的代码示例(参见codepen上的完整代码):

    // ...
    // get duration of the key pressed event
    var duration = ( e.timeStamp - pressed[e.which] ) / 1000;

    // use .fromCharcode to get the alphabetical equivalent of the .which notation
    var letter = String.fromCharCode(e.which);

    // convert letter to lowercase (comes in uppercase)
    var lowerCaseLetter = letter.toLowerCase();
    // ...
我正在努力实现以下目标:

    // ...
    // get duration of the key pressed event
    var duration = ( e.timeStamp - pressed[e.which] ) / 1000;

    // use .fromCharcode to get the alphabetical equivalent of the .which notation
    var letter = String.fromCharCode(e.which);

    // convert letter to lowercase (comes in uppercase)
    var lowerCaseLetter = letter.toLowerCase();
    // ...
  • 显示特殊字符,如括号或标点符号
  • 当我的类元素的长度>n时自动返回到下一行
问题:

    // ...
    // get duration of the key pressed event
    var duration = ( e.timeStamp - pressed[e.which] ) / 1000;

    // use .fromCharcode to get the alphabetical equivalent of the .which notation
    var letter = String.fromCharCode(e.which);

    // convert letter to lowercase (comes in uppercase)
    var lowerCaseLetter = letter.toLowerCase();
    // ...
有没有办法让使用所有keybord“正常”行为的任务变得更容易?(我首先尝试使用textarea texteditable HTML标记,但用js获取那个家伙的事件并不容易)


在这种情况下,jQuery的每一个输入都非常奇怪:
.keyup()
.keydown()
都会提供javascript键码,而不是像
String.fromCharCode()
这样的ASCII键码。但是,
.keypress()
将为您提供正确的值。考虑到这一点,您可以对您的应用程序进行一些轻微的更改,它应该可以按预期工作:


尽管如此,您可能希望一次处理多个字符,因为此解决方案一次只处理一个字符。

非常感谢您抽出时间回答John。我正在处理您的代码,正如您所说,jQuery似乎是为这项任务量身定做的。再次感谢您的投入!