javascript - CKEditor:捕获粘贴事件(包括 Shift + Insert)

标签 javascript ckeditor dom-events internet-explorer-9 copy-paste

我们正在使用 CKEditor,并且我们正在处理粘贴事件,如下所示:

var editor = CKEDITOR.instances.OurInputControlName;
editor.on('paste', function(ev) {
    alert('we are in the on paste event!');
}

但是,我刚刚发现用户可以通过按 Shift+Insert 进行粘贴,并且我们的粘贴事件处理程序未执行。

如何添加捕获 Shift+Insert 和粘贴的事件处理程序。

我们使用的是 CKEditor 4.1.1。

编辑: 这可能是 IE 独有的问题,至少是 IE9。我还没有尝试其他版本的 IE。它在 Firefox 和 Chrome 中运行良好。

最佳答案

我通过检测何时在 IE 中按下 Shift+Insert 并手动触发粘贴事件解决了此问题。

var editor = CKEDITOR.instances.OurInputControlName;
editor.on('key', function(ev) {
    if (ev.data.keyCode == 2228269 && $.browser.msie) {
        setTimeout(function() {
            var event = {
                'type': 'html',
                'dataValue': editor.getData()
            };
            editor.editable().setHtml('');
            editor.fire('paste', event);
        }, 100);
    }
});
editor.on('paste', function(ev) {
    alert('we are in the on paste event!');
}

我使用 setHtml() 调用 editor.setData('') 不断在控制台中记录 Javascript 错误(尽管它似乎确实清除了文本区域)并且没有停止页面工作)。

关于javascript - CKEditor:捕获粘贴事件(包括 Shift + Insert),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19269234/

相关文章:

javascript - jquery 关闭不工作

javascript - CKEDITOR.replace(elm[0]) 在 Android 上的 Chrome 上返回 null

javascript - 如何将参数/参数传递给通过调用 click 以编程方式触发的 onchange 监听器

javascript - 检查innerHTML是否为空

javascript - 动态插入的 <script> 标签是否有效?

javascript - 获取两个日期之间的天数

javascript - Django-CKEditor 小部件未动态加载

javascript - 在移动浏览器上缩放或旋转

javascript "basic Object Oriented",回调,并且对此感到头疼,希望是一个很好的例子

javascript - 从 DOM 中删除编辑器后如何删除 CKeditor 实例