Как я могу добавить (иначе) недопустимый элемент HTML в TinyMCE - PullRequest
0 голосов
/ 24 июня 2010

Мой HTML содержит такие элементы, потому что он использует встроенные строки из django-basic-apps.

<inline type="myapp.mymodel" id="4" />

Я пытаюсь использовать tinymce, чтобы вставить один из них в DOM.На внешнем интерфейсе сайта они превращаются в хороший код.

В tinyMCE я добавил конфигурацию:

extend_valid_elements: 'inline[id|ids|type|filter|class|template]',

Но каждый раз, когда я пытаюсь вставить через:

tinyMCE.execCommand('mceInsertRawHtml',false,'<inline type="myapp.mymodel" id="4" />');

ничего не происходит,

И если я сделаю:

tinyMCE.activeEditor.getContent()

TinyMCE удалит все элементы <inline, которые есть в моем коде.

Кроме того, яхотелось бы, чтобы эти элементы отображались в tinyMCE через CSS или что-то в этом роде, но мне, вероятно, придется взломать DTD.

Если это не сработает, возможное решение, о котором я подумал, - это предварительно-отобразите содержимое в то, что является действительным:

И затем перед сохранением преобразуйте это обратно в то, что должно быть.

Пожалуйста, предоставьте любые предложения для вещей, которые я долженсмотреть в.

Ответы [ 2 ]

1 голос
/ 25 июня 2010

В исходном коде tinymce tiny_mce_src.js найдите строку valid_elements и добавьте туда свои элементы и атрибуты.

0 голосов
/ 08 января 2013

Вместо этого используйте команду mceInsertContent и не используйте самозакрывающиеся теги:

tinyMCE.execCommand('mceInsertContent', false, '<inline type="myapp.mymodel" id="4"></inline>');
...