在我的应用程序中,我有一个 CKEditor 实例。当用户在编辑器中输入文本时,第一个字母应该是大写的。为此,我编写了一个 jQuery keydown 事件处理程序,如下所示:
$(document).ready(function () {
CKEDITOR.instances.CKEditor1.on('contentDom', function () {
CKEDITOR.instances.CKEditor1.document.on('keydown', function (event) {
if (this.selectionStart == 0 && event.keyCode >= 65 && event.keyCode <= 90 && !(event.shiftKey) && !(event.ctrlKey) && !(event.metaKey) && !(event.altKey)) {
var $t = $(this);
event.preventDefault();
var char = String.fromCharCode(event.keyCode);
$t.val(char + $t.val().slice(this.selectionEnd));
this.setSelectionRange(1, 1);
}
});
});
});
它给出了一个运行时错误,即
0x800a138f - JavaScript runtime error: Unable to get property 'on' of undefined or null reference
如何为ckeditor创建keydown事件。(上面的代码是我在.aspx页面写的)
最佳答案
您可以使用以下代码实现此目的。
CKEDITOR.replace( 'editor1', {
on: {
instanceReady: function() {
alert( this.name ); // 'editor1'
},
key: function() {
setTimeout(function(){
console.log('key pressed');
},1);
}
}
});
如果没有 setTimeout 函数,编辑器无法捕获最后按下的键。
CKEditor 版本 4.x
关于javascript - CKeditor 的 KeyDown 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37180560/