дополнительные пробелы вставляются с помощью enterMode CKeditor - вызывает проблемы в документах XML - PullRequest
3 голосов
/ 11 марта 2011

Я использую CKEditor в CMS моего сайта, который выкладывает XML-файл содержимого CDATA для чтения флэш-памятью. Проблема в том, что CKEditor, когда его enterMode установлен в теги <p>, создает разрыв строки и вкладку в источнике, которая при чтении с помощью флэш-памяти попадает в пробел, даже если для ignoreWhiteSpace установлено значение true. Любой способ предотвратить использование этого поведения ckeditor?

EDIT:

Я все еще хочу сохранить любые

теги, введенные из редактора - я просто не хочу, чтобы все дополнительные пробелы / табуляции добавлялись в фактический источник. Если я использую вышеупомянутый метод, мой фактический код будет изменен. Что я получу, если увижу источник:

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

(ввод, и либо вкладка, либо пробел после первого тега

вместо:

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

(без пробелов или разрывов после тега

в источнике, и я считаю, что это влияет на представление XML. Помогает ли это вообще уточнить?

Ответы [ 2 ]

2 голосов
/ 15 марта 2011

Вы должны протестировать образец «output for 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
    });
0 голосов
/ 21 марта 2011

Я на самом деле решил эту проблему на стороне Flash, используя

TextField.condenseWhite = true;

и

XML.ignoreWhite = true;

Что не меняет то, как CKEditor выплевывает вещи, но это решает проблему того, как Flash это отображает.

...