В моем Ckeditor (версия 4.8) у меня есть пользовательский тег citation
, например <citation>page 2</citation>
.Моя проблема заключается в том, что при копировании вставьте содержимое как <citation>page 2</citation>
, To be or not to be<citation>page 2</citation>
.Мой пользовательский тег теряется и в результате получается To be or not to bepage 2
вместо To be or not to be<citation>page 2</citation>
.
. В моей конфигурации я разрешаю свой пользовательский тег:
config = {extraAllowedContent: 'citation'}
Мой текущий обходной путь следующий:
init: function(editor){
editor.on('contentDom',function()
{
editor.on('paste', function(e)
{
var focusManager = new CKEDITOR.focusManager(editor);
if(focusManager.hasFocus)
{
e.data.dataValue = "<span class='paste'>" + e.data.dataValue + "</span>" //wraps it in a utils tag
}
});
editor.on('afterPaste', function(e)
{
var focusManager = new CKEDITOR.focusManager(editor); //unwraps it again
if(focusManager.hasFocus)
{
var $content = $("<div/>").html(editor.getData());
$content.find("span.paste").children().unwrap();
editor.setData($content.html());
}
});
});
},
Перед вставкой он оборачивает содержимое для вставки в промежуток и удаляет его после вставки снова.Я знаю, что есть подобный вопрос о моей проблеме.Однако мне интересно, что будет правильным способом.Кто-нибудь может мне помочь?Спасибо.