CKEditor:在不改变数据的情况下修改视图
问题描述:
我拥有在占位符内通过ID引用图像的内容(例如“$ m(12345)”)。我有一个REST调用,它将为占位符返回一个img标签。CKEditor:在不改变数据的情况下修改视图
我希望CKEditor在编辑器中打开内容或插入占位符时显示图像。但我想占位符留在内容
我已经尝试通过添加规则到dataFilter做到这一点(包括切换到源视图时):
CKEDITOR.on('instanceLoaded', function(ckeditor){
var mediaPlaceholderRegex = /\$m\(.*\)/;
ckeditor.editor.dataProcessor.dataFilter.addRules({
text: function(text, node) {
return text.replace(mediaPlaceholderRegex, function(match) {
var params = "placeholder="+match;
var xhttp = new XMLHttpRequest();
xhttp.open("POST", url, false);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send(params);
return xhttp.responseText;
});
}
});
});
它做的工作用图像标签替换占位符,但切换到源视图时img-tag也存在。
是否有一种简单的方法只将过滤器应用于wysiwyg视图。 我看到的唯一方法是添加一个htmlFilter,将img-tag恢复为占位符。
答
是否有一种简单的方法只适用于所见即所得的过滤器。我看到的唯一方法是添加一个htmlFilter,将img-tag恢复为占位符。
好想法。或者,如果您不希望在每次模式更改时从服务器中删除/取出图像,则可以将占位符放入图像标记的data-
属性中。这一切都取决于您的使用情况,但底线是dataFilter
用于将数据加载到编辑器和htmlFilter
当您从编辑器获取数据(获取数据和切换到源模式时使用相同的方法,因此htmlFilter
适用于此处) 。
这不是占位符的要点。从源视图来回切换将应用数据处理。 – Brunis