Para nota

1 view
Skip to first unread message

Rodrigo Álvarez Virgós

unread,
Jul 25, 2008, 4:26:00 AM7/25/08
to js-o...@googlegroups.com
Hola , JS-Ovillo

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

Rodrigo Álvarez Virgós

unread,
Jul 28, 2008, 12:44:24 PM7/28/08
to js-o...@googlegroups.com
Hola, JS-Ovillo

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

Reply all
Reply to author
Forward
0 new messages