更改默认键操作JavaScript

Change default key action JavaScript

本文关键字:操作 JavaScript 默认      更新时间:2023-09-26

可能重复:
如何用jQuery替换击键?

有没有一种方法可以更改JavaScript中按键的默认字符。就像有人按下"E"按钮,它会打印出一个p,这是实时的,就像它被输入到文本区域一样。不管怎样,用jQuery或类似的东西来做这个?Thnaks!

以下是一个基于以下答案的工作解决方案的完整示例:

jQuery.fn.extend({
    insertAtCaret: function(myValue) {
        return this.each(function(i) {
            if (document.selection) {
                //For browsers like Internet Explorer
                this.focus();
                sel = document.selection.createRange();
                sel.text = myValue;
                this.focus();
            }
            else if (this.selectionStart || this.selectionStart == '0') {
                //For browsers like Firefox and Webkit based
                var startPos = this.selectionStart;
                var endPos = this.selectionEnd;
                var scrollTop = this.scrollTop;
                this.value = this.value.substring(0, startPos) + myValue + this.value.substring(endPos, this.value.length);
                this.focus();
                this.selectionStart = startPos + myValue.length;
                this.selectionEnd = startPos + myValue.length;
                this.scrollTop = scrollTop;
            } else {
                this.value += myValue;
                this.focus();
            }
        })
    }
});
$(function() {
    var ta = $('<textarea id="ta" style="width: 400px; height: 200px;"></textarea>').appendTo('body');
    ta.keypress(function(e) {
        if (e.which == 101) // e
        {
            e.preventDefault();
            ta.insertAtCaret('P');
        }
    });
});

查看此添加键盘快捷键的框架。

http://www.openjs.com/scripts/events/keyboard_shortcuts/

当然,它不会自动将任何按键转换为另一个字符并输出该字符,你必须弄清楚页面的哪个部分有焦点,例如文本字段,并用你真正想要输入的字符修改它的值。