1

我有一个CKEditor 3.0实例“编辑器”,并在其“ key”事件上附加了一个侦听器,因此当该函数返回时,false它不应在编辑器上键入该键字符,也就是说,如果按下键“k”,它不应显示在如果函数返回 false,则编辑器

editor.on('key', function(e)
{
        alert(""+e.data.keyCode);
        return false;
});

我为此使用了上面的代码,但它不起作用,这意味着在编辑器上输入了字符

使用插件尝试相同的操作,在按键代码 65 的按键上,应显示其他语言字符而不是英文字符。

CKEDITOR.plugins.add( 'typing',
    {
        init: function( editor )
        {

            editor.addCommand( 'insertcharacter',
            {
                exec : function( editor )
                {    

                 alert(editor.id);
                    alert(editor.name);
                    editor.on('key', function(e)
                    {
                        alert("Hello"+e.data.keyCode);

                        if(e.data.keyCode == 65)
                        {
                                editor.insertText('Other Language Character');
                        }
                        return false;

                     });
                }
    });

你能建议我解决这个问题吗?谢谢

4

4 回答 4

2

最近找到了答案。这在最新版本(4.x)中对我有用。

editor.document.on('keypress', function(e) {
      e.data.preventDefault(); // this will prevent the default action for any event
      //your code goes here
});
于 2013-03-31T08:28:32.643 回答
1

在 v4 中,您可以使用editor.on('key')cancel()按下相应键时的事件。

所以忽略k个按键,

editor.on('key', function(evt) {
    var keyCodeToIgnore = 'K'.charCodeAt();   // Upper case K. Only one k key.
    var pressedKeyCode = evt.data.keyCode;
    if ( pressedKeyCode === keyCodeToIgnore ) {
        evt.cancel();
    }
}

(当然,这不会阻止通过其他方式添加“k”,例如粘贴。)

请参阅http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-key

您还可以将编辑器配置为阻止指定的击键。使用它可以指定大小写。所以忽略 k 而不是 K:

config.blockedKeystrokes = [75];    // To ignore k and K: [75, 107]

尽管您可能还想保留默认的blockedKeystrokes。

请参阅http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-blockedKeystrokes

第一种方法当然可以让你做其他事情。例如,如果之前的按键是“q”,则忽略“u”可能会让人们发疯。

于 2014-11-07T11:54:09.767 回答
0

在从函数返回之前使用以下代码取消/阻止字符/事件。

e.cancelBubble = true;
e.returnValue = false;
e.cancel();
e.stop();
return false;

其中 e 在函数的参数中

于 2012-12-03T12:42:14.380 回答
0

我来寻找一种将某些东西绑定到回车键的方法。除了我使用contenteditablediv 标签,也许这使得上述解决方案对我不起作用。

但是我来到了这个,这似乎工作得很好

$(function () {
    CKEDITOR.instances['<the DOM ID of your element>'].on('key', function (e) {
        if (e.data.keyCode === 13) {
            //yeet
            e.cancel();
        }
    });
});
于 2017-10-12T17:02:30.963 回答