CKEditor不受欢迎  人物

V.R*_*kov 40 javascript jquery ckeditor

 当我不想要它时,我如何禁用CKEditor每次都能得到我?我正在使用带有jQuery适配器的CKEditor.

我不想要任何 标签.

Tap*_*per 53

经过一些研究后,我可能会对这个问题有所了解 - 遗憾的是,没有开箱即用的解决方案.

在CKEditor中有四种方式可以发生不间断空间(任何人都知道更多?):

  1. 自动填充空块.这可以在配置中禁用:

    config.fillEmptyBlocks = false;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 按TAB键时自动插入.这可以在配置中禁用:

    config.tabSpaces = 0;
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将双空格转换为SPACE + NBSP.这是一种浏览器行为,因此不会由CKEditor团队修复.它可以是固定服务器端或客户端javascript onunload.也许这个PHP是一个开始:

    preg_replace('/\s \s/ig', ' ', $text);
    
    Run Code Online (Sandbox Code Playgroud)
  4. 通过复制和粘贴.如果粘贴UTF-8不间断空格或双空格CKEditor将自动转换它.我在这里看到的唯一解决方案就是如上所述进行正则表达式.config.forcePasteAsPlainText = true;没有帮助.

简介:要摆脱所有不间断空格,您需要编写一个清除用户输入的附加功能.

非常感谢评论和进一步的建议!(我正在使用ckeditor 3.6.4)

  • `config.fillEmptyBlocks = false;`不是我的问题 (6认同)
  • config.fillEmptyBlocks = false; 照顾  自动插入空表格单元格.谢谢! (2认同)
  • 我认为您的正则表达式应该是`/ \ s *  \ s * / ig`,以替换字符串中的多个实例,并考虑到更多将空间与` `混合的情况。因此,诸如“西瓜味”之类的东西 饮料(可能经常发生)将被替换,而使用正则表达式则不会。另外,*应该用在每个`\ s`的前面,因为html仍然只渲染一个空格。 (2认同)

小智 9

还有另一种方法可以发生非中断空格字符.只需在句子末尾输入一个空格即可.

CKEditor与拉丁语和希腊语实体一起转义基本HTML实体.

添加这些配置选项以防止这种情况(您也可以在配置文件中添加它们):

CKEDITOR.on( 'instanceCreated', function( event ) {
 editor.on( 'configLoaded', function() {

  editor.config.basicEntities = false;
  editor.config.entities_greek = false; 
  editor.config.entities_latin = false; 
  editor.config.entities_additional = '';

 });
});
Run Code Online (Sandbox Code Playgroud)

这些选项将阻止CKEditor转义nbsp gt lt amp ' "其他拉丁语和希腊语字符.

来源:http ://docs.ckeditor.com/#!/ api / CKEDITOR.config http://docs.ckeditor.com/source/plugin48.html#CKEDITOR-config-cfg-basicEntities

  • config.basicEntities = false将阻止类型化的HTML被转义,因此人们只需键入HTML,否则将被过滤/呈现为无害.(这是隐含的,因为你说它停止了gt和它被转义,实际上你不应该信任任何用户输入的数据,即使它来自ckEditor,但是认为值得一提.) (5认同)

Dey*_*id. 9

尝试:

config.basicEntities = false;

为我解决了这个问题.

  • 另请参阅我对basicEntities = false的评论,在@ gabriel的答案中通过任意HTML. (2认同)
  • 我相信他的回答很直接,仅此一行就可以解决问题,而不会造成不必要的干扰 (2认同)