我们正在使用 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/