我正在使用“所见即所得”和Octobercms的CKeditor通过管理面板编辑文本。但是,当我编辑文本时,HTML标记之间的所有空格都被替换为“&”,并且出现以下错误
我查看了ckeditor.js文件,找到了被调用以解析HTML的任何函数,但是我无法解决它。
原始代码:
<div class="container d-flex align-items-center px-4">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#ftco-nav" aria-controls="ftco-nav" aria-expanded="false" aria-label="Toggle navigation">
<span class="oi oi-menu"></span> Menu
</button>
<form action="#" class="searchform order-lg-last">
<div class="form-group d-flex">
<input type="text" class="form-control pl-3" placeholder="Search">
<button type="submit" placeholder="" class="form-control search"><span class="ion-ios-search"></span></button>
</div>
</form>
<div class="collapse navbar-collapse" id="ftco-nav">
{% component 'menu' %}
由Ckeditor替换的代码:
<div class="container d-flex align-items-center px-4">Menu
<form action="#">
<div class="form-group d-flex"><input type="text" /></div>
</form>
<div class="collapse navbar-collapse" id="ftco-nav">{% component 'menu' %}
不仅是“&”,而且还有其他字符,例如“#”。我希望空格不会被此类字符替换。
答案 0 :(得分:0)
看起来您在CMS页面上使用的是所见即所得插件?
此问题是由ckeditor想要将撇号解析为'
引起的。它不起作用,因为{% component 'menu' %} is a twig function and because the ckeditor is changing it to
'`不起作用。
我忘记了可能有办法关闭设置中的严格解析。取决于您使用的插件。
尝试使用Static Pages instead。
如果您正在使用此插件,则可以将其关闭。安装并使用Static Pages instead
答案 1 :(得分:0)
将以下内容添加到您的config.js文件中:
CKEDITOR.editorConfig = function( config ) {
CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR;
CKEDITOR.config.forcePasteAsPlainText = false;
CKEDITOR.config.basicEntities = true;
CKEDITOR.config.entities = false;
CKEDITOR.config.entities_latin = false;
CKEDITOR.config.entities_greek = false;
CKEDITOR.config.entities_processNumerical = false;
CKEDITOR.config.fillEmptyBlocks = function (element) {
return true;
};
CKEDITOR.config.autoParagraph = false;
CKEDITOR.config.allowedContent = true;
CKEDITOR.dtd.$removeEmpty.span = 0;
CKEDITOR.dtd.a.div = 1;
CKEDITOR.dtd.a.p = 1;
};