我们正在使用CKEditor,我们正在处理粘贴事件,如:
var editor = CKEDITOR.instances.OurInputControlName;
editor.on('paste', function(ev) {
alert('we are in the on paste event!');
}
但是,我刚刚发现用户可以通过按 Shift + Insert 进行粘贴,我们的粘贴事件处理程序没有被执行。
如何添加捕获 Shift + 插入并粘贴的事件处理程序。
我们正在使用CKEditor 4.1.1。
修改 这可能是IE唯一的问题,IE9至少。我还没有尝试其他版本的IE。它在FF和Chrome中运行良好。
答案 0 :(得分: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()
,因为调用editor.setData('')
一直在控制台中记录Javascript错误(即使它确实清除了textarea并且没有阻止页面正常工作)。