TinyMCE очищает определенные элементы div

У меня есть страница, и я хочу использовать TinyMCE для редактирования определенных элементов на странице. Когда я пытаюсь отредактировать следующие элементы, фактическое содержимое, загруженное внутри tinyMCE, представлено в столбце 2.

Original : As loaded in MCE
<dd>1234<span></span></dd> : 1234<span></span>
<tr><td><label>A</label></td><td>B</td></tr> : <label>A</label>B

Я понимаю, что происходит некоторая проверка HTML, которая проверяет отношения родительского дочернего элемента (например, tr должен появляться только в том случае, если в качестве родителя есть таблица). Есть ли способ заставить tinyMCE прекратить это делать и позволить мне редактировать элементы tr напрямую, не редактируя полные элементы таблицы. т. е. я хочу, чтобы tinyMCE не вносил какие-либо изменения в загруженный HTML, независимо от того, является ли он действительным или нет.

Кроме того, я попробовал настройки verify_html и valid_elements, но, похоже, здесь не помогает.

Спасибо


person Sparsh Gupta    schedule 31.01.2012    source источник


Ответы (2)


У вас есть два варианта здесь

  1. Вы используете настройку инициализации cleanup: false, tinymce, которая отключит проверку html.

или вы можете использовать лучший вариант

2.. и определить, какие элементы и дочерние элементы редактор должен принимать как действительные

В вашем случае ваши valid_elements не нуждаются в обновлении, потому что tr, td и label уже являются допустимыми элементами по умолчанию (но вы можете определить их недействительными, если хотите). Что вам нужно сделать, так это добавить их в качестве допустимых дочерних элементов в настройку valid_children. Если вы хотите определить теги tr как допустимые дочерние элементы p-тегов и других элементов, вам нужно будет установить что-то вроде этого

    valid_children: "body[p|ol|ul]" +
    ",p[a|span|b|i|u|sup|sub|img|hr|#text|tr|td|label]" +
    ",span[a|b|i|u|sup|sub|img|#text|tr|td|label]" +
    ",a[span|b|i|u|sup|sub|img|#text|tr|td|label]" +
    ",b[span|a|i|u|sup|sub|img|#text|tr|td|label]" +
    ",i[span|a|b|u|sup|sub|img|#text|tr|td|label]" +
    ",sup[span|a|i|b|u|sub|img|#text|tr|td|label]" +
    ",sub[span|a|i|b|u|sup|img|#text|tr|td|label]" +
    ",li[span|a|b|i|u|sup|sub|img|ol|ul|#text]" +
    ",ol[li]" +
    ",ul[li]",  
person Thariama    schedule 31.01.2012
comment
Примечание: в настоящее время эта функция устарела. Похоже, теперь очисткой управляют только valid_children и valid_elements :/ - person Manuel Arwed Schmidt; 21.12.2014
comment
@ManuelArwedSchmidt: да, Moxiecode удалил функцию очистки: false - person Thariama; 22.12.2014
comment
Просто хотел добавить это на случай, если кто-то наткнется на это: в настоящее время я использую эту настройку, чтобы избежать очистки старого, частично сгенерированного WORD html, и он отлично работает: verify_html: false, fix_table_elements: false, схема: 'html4' ,invalid_elements:'', valid_elements: '[]', valid_children: '[]' Это позволяет использовать любой HTML с небольшим риском сохранения нередактируемых свойств из ранее использовавшийся WYSIWYG-редактор. - person Manuel Arwed Schmidt; 22.12.2014

Мы используем редактор для определения шаблонов электронной почты с нашим собственным настраиваемым языком и токенами, которые заменяются при отправке электронной почты.

Ни одно из предложенных решений не сработало для нас, потому что мы иногда смешиваем наш собственный язык с html, и он продолжает изменять его из исходного кода, который мы вставляли, поэтому мы обошли это, окружив недопустимый html комментариями и напрямую добавив специальную последовательность символов. внутри тегов, чтобы знать, чтобы удалить эти специальные комментарии позже.

Таким образом, специальные теги могут выглядеть так: <!--~~ Invalid markup to not mess with ~~-->

Затем вы можете удалить специальные теги <!--~~ И ~~-->, когда контент будет использоваться или отображаться.

Недостатком является то, что материал между комментариями не будет отображаться в редакторе (или на странице, пока не будут удалены специальные теги комментариев).

person EricL    schedule 22.01.2015