使用CKeditor的enterMode插入额外的空格 - 导致XML文档出现问题

时间:2011-03-11 19:22:00

标签: php xml flash ckeditor whitespace

我在我的网站的CMS中使用CKEditor,它会扫描出一个由Flash读取的CDATA封装内容的XML文件。问题是CKEditor在其enterMode被设置为<p>标签时,会在源中创建一个换行符和一个选项卡,当被flash读取时,即使我将ignoreWhiteSpace设置为true,也会进入空间。有什么方法可以阻止ckeditor使用这种行为吗?

编辑:

我仍然希望保留任何&lt; p&gt;从编辑器中输入的标签 - 我只是不希望在实际源中添加所有额外的空格/标签。如果我使用上面的方法,我的实际代码将被修改。如果我查看源代码,我得到的是:

<p> 
    Donec at erat nec tortor sodales tempus.</p> 

(一个输入,以及第一个&lt; p&gt;标记之后的标签或一堆空格,而不是:

<p>Donec at erat nec tortor sodales tempus.</p> 

(源代码中的&lt; p&gt;标记后没有空格或中断,我相信这会影响XML的显示。这有助于澄清吗?

2 个答案:

答案 0 :(得分:2)

您应该测试“输出为Flash”示例,这里有一个小片段,只更改您要求的部分,但其余调整应该对您有用:

// Make output formatting match Flash expectations
var dtd = CKEDITOR.dtd;
for ( var e in CKEDITOR.tools.extend( {}, dtd.$nonBodyContent, dtd.$block, dtd.$listItem, dtd.$tableContent ) )
{
    dataProcessor.writer.setRules( e,
        {
            indent : false,
            breakBeforeOpen : false,
            breakAfterOpen : false,
            breakBeforeClose : false,
            breakAfterClose : false
        });
}
dataProcessor.writer.setRules( 'br',
    {
        indent : false,
        breakBeforeOpen : false,
        breakAfterOpen : false,
        breakBeforeClose : false,
        breakAfterClose : false
    });

答案 1 :(得分:0)

我实际上是通过使用

在Flash端解决了这个问题
TextField.condenseWhite = true;

XML.ignoreWhite = true;

这不会改变CKEditor如何吐出来的东西,但它确实解决了flash如何显示它的问题。