У меня есть какое-то странное поведение из моего CKEditor 4.6, когда он иногда удаляет атрибут из диапазона.
У меня есть собственный плагин, который добавляет @mentions и вставляет диапазон, используемый в качестве заполнителя для последующего анализа серверасо стороны, вот так:
var placeholder = '<span class="mention" contenteditable="false" mention-id="' + clickedSuggestion.Id + '">@' + clickedSuggestion.Title + '</span>';
var mentionElement = CKEDITOR.dom.element.createFromHtml(placeholder);
editor.insertElement(mentionElement);
В моей конфигурации я разрешил следующие элементы:
editor.config.extraPlugins += ',mention'; // my custom plugin
editor.config.extraAllowedContent = { span: { classes: 'mention', attributes: 'contenteditable' } };
Теперь, что иногда случается (возможно, 1 из 20 раз), это упоминаниеАтрибут id удаляется.
// what sometimes happens
<span class="mention" contenteditable="false">@foo</span>
// usual output
<span class="mention" contenteditable="false" mention-id="bar">@foo</span>
Я понимаю, что в конфигурации extraAllowedContent отсутствует идентификатор упоминания, и это будет логической причиной проблемы.Но с другой стороны, он прекрасно работает в большинстве случаев!
Я не понимаю, почему атрибут не удаляется все время?Спасибо!
РЕДАКТИРОВАТЬ: Таким образом, кажется, что extraAllowedContent не применяется при использовании editor.insertElement (), так что это исключает неправильную конфигурацию.Но атрибут все еще исчезает во время вызова createFromHtml или insertElement.