Javascript 内联编辑器添加<;br>;在启动时清空div

Javascript 内联编辑器添加<;br>;在启动时清空div,javascript,ckeditor,Javascript,Ckeditor,当初始化文档时,处于内联模式的CKEditor将文档源中的添加到空的div。在CKEditor中检查源时,它显示为完全空。我想这样做是为了停止折叠div或它正在编辑的任何元素,但对我来说,这会导致问题,因为我使用CSS将空div作为目标来显示占位符 我到处都在搜索如何禁用它,很多年前我就看到了FireFox的一些问题,但这似乎是无关的 <div id="editarea" placeholder="Title"></div> CKEDITOR.inline('editar

当初始化文档时,处于内联模式的CKEditor将文档源中的

添加到空的
div
。在CKEditor中检查源时,它显示为完全空。我想这样做是为了停止折叠
div
或它正在编辑的任何元素,但对我来说,这会导致问题,因为我使用CSS将空div作为目标来显示占位符

我到处都在搜索如何禁用它,很多年前我就看到了FireFox的一些问题,但这似乎是无关的

<div id="editarea" placeholder="Title"></div>
CKEDITOR.inline('editarea, {});

<style>
  div:empty:after {
    content: attr(placeholder);
  }
</style>


是一个“填充符”,在输入(编辑器初始化)时,总是按功能将其放置到空块元素中,以便为元素提供高度,以便用户可以单击该元素进行编辑

实际上,没有一个CKeditor配置可以避免这种行为,但是使用jQuery,我们可以删除
instancerady.CKeditor
事件上的

,方法是:

if($(this).html().trim() === '<br>'){
    $(this).html('');
}
if($(this.html().trim()==”
){ $(this.html(“”); }
可以帮助其他人(我找到的解决方案)通过编辑器事件侦听器:

// Ckeditor 4
editor.on('key', function (evt) {
  var selection = editor.getSelection();
  var element = selection.getStartElement();
  var html = element.getHtml();
  var id = element.getId();
  if (evt.data.keyCode !== 13
     && id === 'editarea')) {
     if (html.match(/(&nbsp;)?<br>$/)) {
        element.setHtml('');
     }
  }
})
//Ckeditor 4
编辑器.on('key',函数(evt){
var selection=editor.getSelection();
var元素=selection.getStartElement();
var html=element.getHtml();
var id=element.getId();
如果(evt.data.keyCode!==13
&&id==='editarea')){
if(html.match(/()?
$/){ 元素setHtml(“”); } } })
请尝试此代码它对我有效:

用于卸下装载的br

$('your_id').ckeditor();    
        CKEDITOR.on('instanceReady', function() { 
            $('div.application').find('br').remove();   // remove br tag added on empty divs
        });
要删除,请在销毁功能中使用此选项:

for(CKname in CKEDITOR.instances) // delete multiple instances of ckeditor
        {
            CKEDITOR.instances[CKname].destroy(function(){
                $("your_id").html(function (i, html) {
                    return html.replace(/&nbsp;/g, ''); // remove &nbsp;
                });
            })
        }

虽然它不应该引起重大问题,但也许这会有所帮助► @弗兰更新了答案,也删除了戏剧化:)FillEmptyBlocks不起作用
$('your_id').ckeditor();    
        CKEDITOR.on('instanceReady', function() { 
            $('div.application').find('br').remove();   // remove br tag added on empty divs
        });
for(CKname in CKEDITOR.instances) // delete multiple instances of ckeditor
        {
            CKEDITOR.instances[CKname].destroy(function(){
                $("your_id").html(function (i, html) {
                    return html.replace(/&nbsp;/g, ''); // remove &nbsp;
                });
            })
        }