javascript - CKeditor 的 KeyDown 事件

标签 javascript c# jquery asp.net ckeditor

在我的应用程序中,我有一个 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/

相关文章:

C# 连接到 postgres 数据库

c# - 嵌套 LINQ 查询问题

c# - 按带有多个字符的分隔符的字符串拆分

javascript - JQuery 有办法在随机 HTML 字符串中解除事件绑定(bind)吗?

jQuery 从列表中获取 img 源属性并推送到数组中

javascript - 如何获取各种 VAR 并将它们放入 HTML 创建的容器中?

javascript - 带有填充面积图的 D3.js 工具提示

javascript - 我可以在 fabricjs 中使用图像过滤器在单个图像上应用两种阴影颜色吗?

javascript - 是否仍然可以获得 Facebook 好友电子邮件列表?

jquery - 在数据库发生变化时加载页面 - 可能吗?