ckeditor从代码中删除
,无法删除第二个空间
感谢您的关注。这里的情况是:ckeditor从代码中删除<br />,无法删除第二个空间
我从包含<br />
(两个空格)在具有将被传递给ckreditor,当显示ckreditor改变从代码提供给所述 
元件<br />
的内容的客户端接收的代码。由于代码由第三方提供,不能更改(不会创建其他开发人员不会期待的其他步骤,所以我宁愿避免使用基于str_replace
的解决方案),因此我们无法删除空间到<br />
将其转化为<br />
,详见this answer。
这里是什么,我收到一个简短的例子:
<h2 dlpe-id="74">El plan perfecto0000 para una promoción única</h2>
<br />
<br />
<br />
<div class="swiper-container" dlpe-id="78">...
什么是CKEditor的输出:
<h2 dlpe-id="74">El plan perfecto0000 para una promoción única</h2>
<br />
<br />
<div class="swiper-container" dlpe-id="78">...
注意 
。我也在this post中看到配置设置可能是解决此问题的关键。问题结束后会发布我的配置。
任何帮助,以确保<br/>
不会变成 
通过调整配置文件或其他方式将不胜感激。
/**
* @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.editorConfig = function(config) {
// Define changes to default configuration here.
// For complete reference see:
// http://docs.ckeditor.com/#!/api/CKEDITOR.config
// The toolbar groups arrangement, optimized for two toolbar rows.
config.toolbarGroups = [
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
{ name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] },
{ name: 'links' },
{ name: 'insert' },
{ name: 'forms' },
{ name: 'tools' },
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
{ name: 'others' },
'/',
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
{ name: 'styles' },
{ name: 'colors' },
{ name: 'about' }
];
// Remove some buttons provided by the standard plugins, which are
// not needed in the Standard(s) toolbar.
config.removeButtons = 'Underline,Subscript,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.autoParagraph = false;
config.basicEntities = false;
config.AllowedContent = "br[clear]";
};
以下this bug,它似乎还没有修复(或可能修复并在新版本中返回)。
然而 - 从那里的意见,2个星期前j.swiderski添加评论用代码来解决这个问题:
CKEDITOR.instances.editor1.on('pluginsLoaded', function(evt){
evt.editor.dataProcessor.dataFilter.addRules({
elements :{
br : function(element) {
//if next element is BR or <!--cke_br_comment-->, ignore it.
if(element && element.next && (element.next.name == 'br' || element.next.value == 'cke_br_comment')){
return;
}else {
var comment = new CKEDITOR.htmlParser.comment('cke_br_comment');
comment.insertAfter(element);
}
}
}
});
evt.editor.dataProcessor.dataFilter.addRules({
elements :{
li : function(element) {
if(element && element.next && element.next.name == 'br'){
var nextElem = element.next;
while(nextElem.next && nextElem.next.name == 'br'){
nextElem = nextElem.next;
}
var comment = new CKEDITOR.htmlParser.comment('cke_br_comment');
comment.insertAfter(nextElem);
}
}
}
}, 1);//priority defaults to 10
evt.editor.dataProcessor.htmlFilter.addRules({
comment : function(value, node) {
if(value.indexOf('cke_br_comment') >= 0) {
return false;
}
}
});
});
这里是一个工作示例:
https://jsfiddle.net/8xpfq4ng/
嗨Dekel,感谢您花时间对此进行编码,这是我们时区工作日的结束,这是一个团队问题,明天早上将采取适当的措施并提供反馈意见。 –
jsfiddle是一个工作示例,您可以将其打开并在源/视图模式之间切换多次,以查看它是如何工作的:)但是,您也可以在明天检查它。 NP。 – Dekel
无论如何,显然必须做upvote,不能离开你9990点... –
你是否正在寻找应保持两个空间的'br'元素中的解决方案吗? '
'或者它可以是一个空间吗? – Dekel
嗨德克尔,我不介意只要最后的'
'不是用'&nbsp'替换,谢谢! –