我遇到CKEditor 4的问题,我需要输出没有任何html实体,所以我在配置中添加了config.entities = false;
,但是在
config.forcePasteAsPlainText = true;
替换
您可以通过输入
在any demo上查看该内容测试测试
例如
你知道我怎么能阻止这种行为吗?
谢谢!
答案 0 :(得分:10)
这些实体:
// Base HTML entities.
var htmlbase = 'nbsp,gt,lt,amp';
是一个例外。要摆脱它们,您可以设置basicEntities: false
。但正如docs提到的那样,这是一种不安全的设置。因此,如果您只想删除
,那么我应该只对输出数据使用regexp(例如,通过添加#getData的监听器),或者,如果您想更精确,请将自己的规则添加到{ {1}}就像htmlFilter
插件does here。
答案 1 :(得分:10)
基于Reinmars接受的答案和Entities plugin我创建了一个带有HTML过滤器的小插件,用于删除多余的
个实体。正则表达式可以改进以适应其他情况,所以请编辑这个答案。
/*
* Remove entities which were inserted ie. when removing a space and
* immediately inputting a space.
*
* NB: We could also set config.basicEntities to false, but this is stongly
* adviced against since this also does not turn ie. < into <.
* @link http://stackoverflow.com/a/16468264/328272
*
* Based on StackOverflow answer.
* @link http://stackoverflow.com/a/14549010/328272
*/
CKEDITOR.plugins.add('removeRedundantNBSP', {
afterInit: function(editor) {
var config = editor.config,
dataProcessor = editor.dataProcessor,
htmlFilter = dataProcessor && dataProcessor.htmlFilter;
if (htmlFilter) {
htmlFilter.addRules({
text: function(text) {
return text.replace(/(\w) /g, '$1 ');
}
}, {
applyToAll: true,
excludeNestedEditable: true
});
}
}
});
答案 2 :(得分:0)
我需要更改Imeus发送的正则表达式,就我而言,我使用TYPO3,并且需要编辑后端编辑器。这个没有用。也许它可以帮助另一个有相同问题的人:)
return text.replace(/ /g, ' ');