我的编辑器页面视图中有一个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>
标签或简单文本,则可以正确替换它!