Tenemos tan abandonada esta lista, que ya no me acordaba de ella... A
ver si alguien sabe cómo hacer lo siguiente, que js definitivamente no
es para mí:
Me he currado un editor de textos. Ya sabéis: poner texto en negrita, de
colores, insertar enlace, etc etc etc. Para ello me apoyo en la función
execCommand [1], con una barra de herramientas que actúa sobre el texto
de un iframe editable. El problema me surge cuando quiero tener varios
campos editables y "formateables", cada uno de ellos con su barra de
herramientas.
Con un sólo editor es fácil referirse a
document.getElementById('iframe')....execCommand(...). Si tuviese un
número fijo de editores, podría referirme a ellos por sus id's (iframe1,
iframe2...), pero ¿y cuando tengo un número n de editores, siendo n
desconocido?
Y otra pregunta: ¿existe la manera de poner la barra de herramientas de
marras simplemente agregando una clase al iframe o algo así? TinyMCE [2]
lo hace así: agregas la clase a un textarea y ¡violá! ¿Y por qué no uso
directamente el TinyMCE? Pues porque es muy cutre y genera un código
como para echar a correr..
A ver si algún gurú en lenguajes "obfuscados, internavegadoriales e
intraplataformarios" (uséase, js xD) me ilumina.
Gracias y un saludo
Rodri
[1] http://www.quirksmode.org/dom/execCommand.html
[2] http://tinymce.moxiecode.com/index.php
Si tengo este constructor:
function Editor(iframe)
{
this.iframe = iframe;
this.autoResize = autoResize;
this.getButton = getButton;
this.getToolbar = getToolbar;
this.bold = bold;
this.italic = italic;
this.underline = underline;
this.colour = colour;
this.link = link;
this.unlink = unlink;
this.ul = ul;
this.ol = ol;
container.appendChild(iframe);
this.editor = this.iframe.contentDocument ||
this.iframe.contentWindow.document;
this.editor.designMode = 'on';
this.editor.contentEditable = true;
}
¿Por qué ******* en este método:
function bold()
{
this.editor.execCommand('bold', false, null);
}
, FireBug me dice que this.editor es undefined? ¿this.editor no debería
mantener su valor durante la vida del objeto? No entiendo nada, estoy
que echo chispas