我有一个CKEditor 3.0
实例'编辑器'及其key
' event附加一个监听器,以便当该函数返回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;
});
}
});
你建议我解决这个问题吗?
感谢
答案 0 :(得分: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
});
答案 1 :(得分: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]
虽然您可能也希望保留默认的封锁凯斯特。
请参阅http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-blockedKeystrokes
第一种方法当然可以让你做其他事情。你可以忽略一个“你好”来驱使人们疯狂。例如,如果之前的按键是' q'。
答案 2 :(得分:0)
在从函数返回到取消/阻止字符/事件之前使用以下代码。
e.cancelBubble = true;
e.returnValue = false;
e.cancel();
e.stop();
return false;
其中e在函数参数
中答案 3 :(得分:0)
我来找一种方法将东西绑定到回车键按下。除了我使用contenteditable
div标签,也许这使得上述解决方案对我不起作用。
然而我来到这里,似乎工作得很好
$(function () {
CKEDITOR.instances['<the DOM ID of your element>'].on('key', function (e) {
if (e.data.keyCode === 13) {
//yeet
e.cancel();
}
});
});