2010-07-05 4 views
2

Использование copy-paste (или плагина кода) позволяет вставлять содержимое, включая промежутки, уступающие вложенным промежуткам, даже если я думал, что мои настройки запрещают вложенные интервалы. Я хочу, чтобы вложенные промежутки были отфильтрованы, когда действие «очистка» будет выполнено.Проблема с конфигурацией/очисткой

Выполнение ручной очистки (команда «mceCleanup», которая запускается после вставки текста) также не помогает.

Возвращаясь к TinyMCE documentation, пользователь может выбрать, какие дочерние элементы tinymce отбрасываются при выполнении «очистки» для определенных родительских узлов.

Есть ли проблема с моей конфигурацией? Если да, что не так? Любые предложения?

Вот моя конфигурация (соответствующая часть, я использую версию новейшего TinyMCE (3.3.8), происходит во всех основных браузерах):

cleanup : true, 

    encoding: "xml", 

    dialog_type : "modal", 

    object_resizing: false, 
    paste_strip_class_attributes: "all", 

    entity_encoding: "raw", 

    fix_nesting: true, 

    invalid_elements: "strong,ul,ol,li", 


    // The valid_elements option defines which elements will remain in the edited text when the editor saves. 
    valid_elements: "@[id|class|title|style]," 
    + "a[name|href|target|title]," 
    + "#p,-ol,-ul,-li,br,img[src],-sub,-sup,-b,-i," 
    + "-span,hr", 

    valid_child_elements : "body[p|ol|ul]" //EDIT: had some ","s instead of "|"s 
    + ",p[a|span|b|i|sup|sub|img|hr|#text]" 
    + ",span[a|b|i|sup|sub|img|#text]" 
    + ",a[span|b|i|sup|sub|img|#text]" 
    + ",b[span|a|i|sup|sub|img|#text]" 
    + ",i[span|a|b|sup|sub|img|#text]" 
    + ",sup[span|a|i|b|sub|img|#text]" 
    + ",sub[span|a|i|b|sup|img|#text]" 
    + ",li[span|a|b|i|sup|sub|img|ol|ul|#text]" 
    + ",ol[li]" 
    + ",ul[li]" 

ответ

2

Я не думаю, что есть какие-либо проблемы с ваш конфиг.

Проблема заключается в том, что код TinyMCE полностью игнорирует атрибут valid_child_elements с версии 3.3b1 (25 января 2010 г.). Я использовал Window Grep для проверки всех файлов в загрузке 3.3.8, а строка valid_child_elements найдена только дважды (и в той же строке) в /jscripts/tiny_mce/Classes/Editor.js - это, оказывается, простая инструкция присваивания, которая больше нигде не используется.

Оказывается, что в версии 3.2.7 (22 сентября 2009) или ниже (см http://sourceforge.net/projects/tinymce/files), атрибут valid_child_elements вызывает функцию с именем addValidChildRules в /jscripts/tiny_mce/Classes/dom/Serializer.js, который я считаю делает то, что вы, по сути хотите. В этой версии есть ошибки. В конце концов я получил вложенные теги, которые будут удалены после добавления упрощенного параметра valid_child_elements конфигурации к одному из файлов примеров в загрузках:

valid_child_elements : "span[a|b|i|sup|sub|img|#text]" 

Надеется, что это помогает.

+0

Уже просмотрел код и нашел только два места, которые вы сделали. Объяснение, что это когда-то работало (версия 3.2.7), несколько объясняет это. Итак, вы настроили tinymce, используя valid_child_elements в версии 3.2.7? – Thariama

+0

Да, используя 3.2.7 и настраивая параметры 'valid_child_elements', как показано в приведенном выше блоке кода, он корректно удаляет вложенные теги span. Когда я попытался с дополнительными элементами, которые вы предоставили для 'valid_child_elements' в вашем вопросе выше, однако, я получаю ошибки Javascript. – Bermo

+0

спасибо за ваши усилия - это мне очень помогло (щедрость ваша). главный разработчик tinymce сказал мне, когда его спросили, что его функциональность вернется в версии 3.4, но будет применена с использованием другого более удобного способа настройки. – Thariama

Смежные вопросы