有沒有人知道如何在CKEditor 3.x中附加onpaste
事件?ckeditor - onpaste事件
我基本上要搶CTRL +V數據和一些文本添加到它,然後將其添加到編輯器。
我環顧四周,但還沒有找到明確的答案。 CKEditor論壇沒有太大的幫助。
有沒有人知道如何在CKEditor 3.x中附加onpaste
事件?ckeditor - onpaste事件
我基本上要搶CTRL +V數據和一些文本添加到它,然後將其添加到編輯器。
我環顧四周,但還沒有找到明確的答案。 CKEditor論壇沒有太大的幫助。
這應該做的伎倆
var editor = CKEDITOR.instances.YourInputControlName;
editor.on('paste', function(evt) {
// Update the text
evt.editor.setData(evt.editor.getData() + ' your additional comments.');
}, editor.element.$);
這個例子編輯通過刪除所有IMG元素粘貼的內容。
CKEDITOR.on('instanceReady', function (ev) {
ev.editor.on('paste', function (ev) {
ev.data.html = ev.data.html.replace(/<img([^>]*)?>/gi, '');
});
});
您的兩個示例都有點合成。
首先,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');
});
不要使用功能editor.setReadonly(真/假),您將無法粘貼到正確的位置(用異步數據處理的情況下)的文本。
屬性'evt.data.html'已經成爲CKEditor v4 +中的'evt.data.dataValue',如另一個答案http://stackoverflow.com/a/21677580/823020 – nimasmi 2014-02-17 11:12:15
我知道這是一個老問題,但認爲我會添加我的版本的aliaksej的答案,因爲它允許使用自定義的「清潔」 - 它不適合我,直到我改變它如下。
editor = CKEDITOR.instances[id];
editor.on('paste', function (evt) {
evt.stop();
$.post('/actions/clean.php', {html: evt.data.dataValue}).done(function (data) {
evt.editor.insertHtml(data);
}, 'json');
});
屬性'evt.data.html'已成爲CKEditor v4 +中的'evt.data.dataValue',如在另一個答案http://stackoverflow.com/a/21677580/823020 – nimasmi 2014-02-17 11:11:10
編輯答案,謝謝! – 2015-10-19 09:54:03
editor = CKEDITOR.instances[id];
editor.on('paste', function (evt) {
evt.stop();
var data = evt.data.dataValue;
if (window.chrome || window.safari) {
// removing span wrapper on webkit browsers.
data = $(data).html();
}
evt.editor.insertHtml(data);
});
被警告說,如果你有使用Shift + Insert鍵粘貼IE用戶,你的粘貼處理程序將不會被執行。 – vegemite4me 2013-10-14 09:06:50