我在 Windows 8.1 操作系统中安装了 Visual Studio 2012 Express,并根据要求在我的项目中使用 CKEditor。
我是 CKEditor 的新手,也以正确的方式使用它,但问题是通过在 CKEditor 中的源代码中定义 html 它会自动替换
<div><i class="classname"></i></div>
with
<div> </div> or <div></div>
那么如何防止CKEditor不替换它并按原样保存呢?
我有一些解决方案,但我正在替换仍然有一点错误
<i class="classname"></i>
with
<div class="classname"></div>
但在标签之间它会自动添加  。
如何防止不添加 ?
下图中,CKEditor 已打开,您可以在圆形区域中看到它自动在我的代码中添加一些空格或制表符。
如何阻止呢?
看看这个帖子:CKEditor 不需要人物 https://stackoverflow.com/questions/9741620/ckeditor-unwanted-nbsp-characters
经过一些研究,我可能会对这个问题有所了解 -
不幸的是,没有现成的解决方案。
在 CKEditor 中,有四种方式可以出现不间断空格(有人知道更多吗?):
-
自动填充空块 http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.fillEmptyBlocks。可以在配置中禁用此功能:
config.fillEmptyBlocks = false;
-
按TAB键自动插入 http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.tabSpaces。可以在配置中禁用此功能:
config.tabSpaces = 0;
-
将双空格转换为 SPACE+NBSP。这是浏览器行为,因此 CKEditor 团队不会修复 http://ckeditor.com/comment/33942#comment-45910。它可以被修复
服务器端或客户端 javascript onunload。也许这个 php 是
开始:
preg_replace('/\s \s/i', ' ', $text);
通过复制粘贴。如果您粘贴一个UTF-8 不间断空格 http://www.fileformat.info/info/unicode/char/a0/index.htm或者双空格 CKEditor 会自动转换它。唯一的
我在这里看到的解决方案是执行上面的正则表达式。
config.forcePasteAsPlainText = true;
没有帮助。
摘要:要摆脱所有不间断空格,您需要编写一个
清理用户输入的附加功能。
非常感谢评论和进一步的建议! (我正在使用ckeditor
3.6.4)
EDIT #1
看看这个。
CKEDITOR.dtd.$removeEmpty.i= 0;
您还可以将其与 span 和其他标签一起使用。
对此的文档。 http://docs.ckeditor.com/#!/api/CKEDITOR.dtd-property-S-removeEmpty
停止删除 CKEditor 中的任何空标签
有一个定义的标签列表,如果出现以下情况,将被删除:
空(请参阅 dtd.js 和 $removeEmpty 或运行 CKEDITOR.dtd.$removeEmpty
从控制台)。
为了确保某些空标签不被删除,添加属性
‘数据-cke-生存’:
<span data-cke-survive="true" ></span>
或者您可以配置不删除特定标签:
if(window.CKEDITOR){
CKEDITOR.on('instanceCreated', function (ev) {
CKEDITOR.dtd.$removeEmpty['span'] = 0;
CKEDITOR.dtd.$removeEmpty['TAG-NAME'] = 0;
}
}
通过将 CKEDITOR.dtd.$removeEmpty 中的元素设置为 0,
防止 CKEditor 删除空标签。
http://margotskapacs.com/ http://margotskapacs.com/2014/11/ckeditor-stop-altering-elements/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)