如果我不想要它们,我怎样才能禁止CKEditor每次
来找我?我正在使用带有jQuery适配器的CKEditor。
我不想要任何
代码。
答案 0 :(得分:51)
经过一番研究后,我可能会对这个问题有所了解 - 遗憾的是,没有开箱即用的解决方案。
在CKEditor中有四种方式可以发生不间断的空间(任何人都知道更多?):
Automatic filling of empty blocks。这可以在配置中禁用:
config.fillEmptyBlocks = false;
Automatic insertion when pressing TAB-key。这可以在配置中禁用:
config.tabSpaces = 0;
将双空格转换为SPACE + NBSP。 This is a browser behavior and will thus not be fixed by the CKEditor team。它可以是固定服务器端或客户端javascript onunload。也许这个php是一个开始:
preg_replace('/\s \s/ig', ' ', $text);
通过副本&糊。如果粘贴UTF-8 no-break space或双空格,CKEditor会自动转换它。我在这里看到的唯一解决方案就是如上所述进行正则表达式。 config.forcePasteAsPlainText = true;
无效。
总结:要摆脱所有不间断空格,您需要编写一个清除用户输入的附加功能。
非常感谢评论和进一步的建议! (我正在使用ckeditor 3.6.4)
答案 1 :(得分: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 = '';
});
});
这些选项可以防止CKEditor转义nbsp gt lt amp ' "
其他拉丁语和希腊字符。
来源: http://docs.ckeditor.com/#!/api/CKEDITOR.config http://docs.ckeditor.com/source/plugin48.html#CKEDITOR-config-cfg-basicEntities
答案 2 :(得分:8)
尝试:
config.basicEntities = false;
对我来说解决了这个问题。
答案 3 :(得分:4)
CKEDITOR.editorConfig = function( config ) {
config.enterMode = CKEDITOR.ENTER_BR; // <p></p> to <br />
config.entities = false;
config.basicEntities = false;
};
在您使用php打印文本后,它对我有用:html_entity_decode( $someText )
;
答案 4 :(得分:2)
我注意到一些文本编辑操作,比如删除一个字符(通过按Backspace按钮)将编辑的文本节点拆分为两个。在这样新创建的文本节点的末尾点击空格键总是导致
而不是正常空间。我在更改后调用normalize()
http://www.w3schools.com/jsref/met_node_normalize.asp来更改元素:
CKEDITOR.on('instanceReady', function (ck) {
ck.editor.on("change", function (e) {
var sel = ck.editor.getSelection();
if (sel) {
var selected = sel.getStartElement();
if (selected && selected.$)
sel.getStartElement().$.normalize();
}
});
});
答案 5 :(得分:0)
我在创建一些表时遇到了同样的问题。我看到的是,如果我使用css规则创建表align="left"
,则会添加<p> </p>
,但如果我将css规则更改为align="center"
,我可以编辑段落,它们是没有再添加。
答案 6 :(得分:0)
我已经不得不玩config.js,所以为了修复'?'出现在safari中我最后在config.js中找到了3行
config.fillEmptyBlocks = function (element) {
return true; // DON'T DO ANYTHING!!!!!};
config.entities = false;
config.basicEntities = false;
答案 7 :(得分:0)
这是一个糟糕的解决方案
config.basicEntities = false;
<script type="text/javascript" src="/scripts/redactor/ckeditor/ckeditor.js"></script>
<p> </p>
之类的空块也不会在文本中指定缩进,因为字符
将被删除(config.fillEmptyBlocks = true;)这是正确的解决方案
$text = preg_replace("#([^>]) #ui", "$1 ", $text);
的PHP函数,除了<p> </p>
答案 8 :(得分:-3)
如果您使用的是PHP,则可以使用以下内容:
preg_replace("/[\<]p[\>][\s]+ [\<][\/]p[\>]/" , " " , $pre_comment);
这将删除:"<p> </p>"
享受:)
麦克斯韦
答案 9 :(得分:-3)
将此添加到您的config.js
config.enterMode = CKEDITOR.ENTER_BR,