有谁知道如何onpaste在CKEditor 3.x中附加事件?
我基本上想要获取CTRL+ V数据并添加一些文本,然后将其添加到编辑器中.
我环顾四周但没有找到明确的答案.CKEditor论坛没什么帮助.
nja*_*boy 18
这应该可以解决问题
var editor = CKEDITOR.instances.YourInputControlName;
editor.on('paste', function(evt) {
// Update the text
evt.editor.setData(evt.editor.getData() + ' your additional comments.');
}, editor.element.$);
Run Code Online (Sandbox Code Playgroud)
小智 13
你的两个例子都有点合成.
首先,editor.getData()获取编辑器的所有内容,因此如果您只想处理粘贴的数据,则需要获取ev.data.html并粘贴到正确的位置.
editor = CKEDITOR.instances.editor1;
editor.on('paste', function (evt) {
var editor = evt.editor;
evt.stop(); // we don't let editor to paste data, only for current event
// show loader that blocks editor changes
$.post('clean.php', {html: evt.data.html}, function (data) {
editor.insertHtml( data.html ); // text will be inserted at correct place
// hide loader
}, 'json');
});
Run Code Online (Sandbox Code Playgroud)
不要使用函数editor.setReadonly(true/false),您将无法在正确的位置粘贴文本(在异步数据处理的情况下).
小智 12
此示例通过删除所有img元素来编辑要粘贴的内容.
CKEDITOR.on('instanceReady', function (ev) {
ev.editor.on('paste', function (ev) {
ev.data.html = ev.data.html.replace(/<img( [^>]*)?>/gi, '');
});
});
Run Code Online (Sandbox Code Playgroud)