Pregunta

Estoy usando TinyMCE a editar / texto marcado en un motor de Zend Framework. Me gustaría utilizar el código HTML generado en una aplicación Flash AS3. El problema es que Flash no admite atributos en <span> de, etiquetas <em>, <strong> etiquetas, etc. Creo que hay dos posibilidades:

  • cambiar la configuración TinyMCE por lo que usa letras de las etiquetas en lugar de la amplitud de <b>, en lugar de <strong>, ...
  • Cambie todas las etiquetas HTML en Flash con expresiones regulares.

Cualquier ayuda sería bienvenida.

lo que este es el HTML original generada por tinyMCE:

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

Y esto es lo que necesito en Flash:

<font size='24' color='#FF0000'>text and <b>bold text</b></font> 
¿Fue útil?

Solución

Gracias por la respuesta, pero he encontrado una solución muy simple. TinyMCE viene con un plug-in llamado: legacyoutput . Esto generará un código HTML de la vieja escuela que es legible en Flash.

cómo utilizar este:

  • añadir legacyoutput para sus plugins en la función tinyMCE init
  • añadir la siguiente regla a su TinyMCE función init: extended_valid_elements: 'b, i'

Ahora el código HTML se verá así:

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

El atributo de estilo debe ser sustituido por un atributo de color para que sea legible en flash Puede solucionar este problema mediante la edición de una regla en los archivos js legacyoutput (tinymce / plugins / legacyoutput / editor_plugin.js y editor_plugin_src.js):

look para "color de primer plano" y cambiar el código a la siguiente:

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

Ahora usted puede ouput esto en flash witouth utilizando un solo truco.

Otros consejos

En primer lugar añada lo siguiente a su configuración (esto debería resultar en el uso de las B-etiquetas en lugar de fuerte para negrita):

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

Se debe escribir un plugin propio con la funcionalidad que sustituye a su vanos (utilizando jQuery). El código en cuestión debe ser similar a esto:

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]);
  }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top