2

我们正在使用 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 中运行良好。

4

1 回答 1

2

我通过检测在 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()as 调用editor.setData('')在控制台中记录一个 Javascript 错误(即使它似乎确实清除了 textarea 并且没有停止页面工作)。

于 2013-10-15T12:50:16.303 回答