У меня есть ckeditor 4 в просмотре страницы моего редактора.Я хочу знать, как динамически добавлять теги привязки (ссылки) в редактор из ответа ajax.
Я включил ссылки в конфигурации Ckeditor.Я также попытался добавить a
к CKEDITOR.dtd.$removeEmpty
Я также проверил CKEDITOR.dtd.p
, и он уже a
в качестве члена, и его значение равно 1
.
Ниже коды моей инициализациив файле конфигурации
CKEDITOR.editorConfig = function( config ) {
config.toolbarGroups = [
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
{ name: 'basicstyles', groups: [ 'basicstyles' ] },
{ name: 'paragraph', groups: [ 'list', 'indent', 'align', 'bidi' ] },
{ name: 'insert' },
{ name: 'colors' },
{ name: 'links', groups: [ 'link', 'unlink' ]}
];
// Remove some buttons provided by the standard plugins, which are
// not needed in the Standard(s) toolbar.
config.removeButtons = 'Subscript,Strike,Superscript';
// Set the most common block elements.
config.format_tags = 'p;h1;h2;h3;pre';
// Simplify the dialog windows.
config.removeDialogTabs = 'image:advanced;link:advanced';
config.extraPlugins = 'embed';
config.embed_provider = '//ckeditor.iframe.ly/api/oembed?url={url}&callback={callback}';
config.filebrowserBrowseUrl = '/url';
config.filebrowserImageBrowseUrl = '/url';
config.filebrowserFlashBrowseUrl = '/url';
config.filebrowserUploadUrl = '/url';
config.filebrowserImageUploadUrl = '/url';
config.filebrowserFlashUploadUrl = '/url';
}
Ниже я попытался установить ссылки на ckeditor
var linkHref = $(e.target).attr('data-href');
var link = '<a data-cke-survive="true" data-cke-saved-href="'+ linkHref +'" href="' + linkHref + '>'+ $(e.target).text() +'</a>';
var ckeditorInnerHtml = ckeditorInstance.$.body.innerHTML;
ckeditorInnerHtml = ckeditorInnerHtml.split('#' + keyword).join(link);
CKEDITOR.instances.content.setData(ckeditorInnerHtml);
Я ожидаю, что '#' + keyword
будет заменен предоставленной мной ссылкой.Но он удаляется и устанавливается пустым в редакторе.Если я добавлю другие теги, такие как тег <p>
или простой текст, он будет заменен правильно!