Вопрос

Я использую Tinymce для редактирования / разметки текста в Backend Zend Framework. Я хотел бы использовать сгенерированный HTML в приложении Flash AS3. Проблема в том, что вспышка не поддерживает атрибуты в <span>, <em> Теги, <strong> Теги и т. Д. Я думаю, что здесь есть две возможности:

  • Измените конфин Tinymce, чтобы он использовал Font-Tags вместо SPAN, <b> вместо <strong>,...
  • Замените все HTML-теги во вспышке с помощью Regex.

Любая помощь приветствуется.

Так что это оригинальный HTML, генерируемый Tinymce:

<span style="color:#FF0000; font-size:24;">text, and <strong>bold text</strong></span>

И это то, что мне нужно во вспышке:

<font size='24' color='#FF0000'>text and <b>bold text</b></font> 
Это было полезно?

Решение

Спасибо за ответ, но я нашел очень простое решение. Tinymce поставляется с подключением называется: легадей. Отказ Это будет генерировать HTML-код Old-School, который читается в Flash.

Как использовать это:

  • добавлять легадей на ваши плагины в функции init Tinymce
  • Добавьте следующее правило к вашей функции init Tinymce:extended_valid_elements: 'b, i'

Теперь ваш HTML будет выглядеть так:

<font size="12" style="color:#FF0000"><b>text in bold 14pt red</b></font>

Атрибут стиля должен быть заменен цветовым атрибутом, чтобы сделать его читаемостью во флэш-памяти, вы можете исправить это, редактируя правило в файлах LEGACEOUTPUT JS (TiniMce / Plugins / Legacyoutput / edital_plugin.js и editor_plugin_src.js):

Ищите «Prosolor» и измените код до следующего:

forecolor : {inline : 'font', attributes : {color : '%value'}},

Теперь вы можете отправить это в Flash Witouth, используя один взлом.

Другие советы

Сначала добавьте следующее на ваш конфиг (это должно привести к использованию B-тегов вместо сильных для смелых):

tinyMCE.init({
    ...
    formats : {
          ...
      bold : {inline : 'b'},
          ...
});

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

iframe_id = (ed.id == 'content_ifr') ? ed.id : ed.id+'_ifr';
spans = document.getElementById(iframe_id).document.getElementsByTagName('span');

for (i=0;i<spans.length;i++){

  with(document.getElementById(iframe_id).contentWindow){

    var font=document.createElement("font");
    font.innerHTML = span[i].innerHTML;
    font.size = $(span[i]).attr('font-size');
    font.color = $(span[i]).attr('color');
    span[i].parentNode.replaceChild(font, span[i]);
  }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top