Foros del Web » Programando para Internet » Javascript »

execCommand no responde al hacer click sobre una celda

Estas en el tema de execCommand no responde al hacer click sobre una celda en el foro de Javascript en Foros del Web. Hola a todos. Estoy simplemente probando las posibilidades del método execCommand. Mi código es muy simple: Código: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ...
  #1 (permalink)  
Antiguo 29/06/2008, 22:34
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 1 mes
Puntos: 9
execCommand no responde al hacer click sobre una celda

Hola a todos. Estoy simplemente probando las posibilidades del método execCommand. Mi código es muy simple:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script>
function init()
{
    window('fr').document.designMode = 'On';
}
function test()
{
    window('fr').document.execCommand("forecolor",false,"#00FF00");
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body onload="init()">
<iframe id="fr" frameborder="0" src="iframe.html"></iframe>
<table id="PALETTE" cellspacing="4" cellpadding="0">
           <tr>
            <td bgcolor="#000000" width="20" onclick="test()">&nbsp;</td>
        </tr>
</table>           
</body>
</html>
Estoy probando el mismo en IE. Al hacer click sobre la celda, no se produce ningún cambio en el iframe, es decir, cuando escribo, sigo escribiendo en el mismo formato (en este caso el color es el que no se altera). Probé aplicando otros comandos como 'bold' y tampoco funciona. El evento si es recibido. Esto lo sé porque si pongo un alert('mensaje') me muestra el mensaje correspondiente, por lo tanto es solo un problema con la función execCommand. IE tampoco me muestra ningún error cuando hago click, es como que lo ignorara. ¿Alguien sabe que puede estar pasando que no me funciona?. Saludos.
__________________
Add, never Remove
  #2 (permalink)  
Antiguo 30/06/2008, 08:34
 
Fecha de Ingreso: junio-2008
Mensajes: 60
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: execCommand no responde al hacer click sobre una celda

Nunca he usado esa función, pero por lo que estoy viendo parece que solo es válido para comandos propios del explorador como 'Refresh', 'Undo' , 'Redo'....
  #3 (permalink)  
Antiguo 30/06/2008, 08:55
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 1 mes
Puntos: 9
Respuesta: execCommand no responde al hacer click sobre una celda

Hola ivangc. Gracias por responder. Te comento que no es así, ya que si llamo a la función test() (que es la que llama a execCommand) desde un botón de formulario, el código funciona de manera adecuada. El problema solo ocurre cuando intento llamar a esta función al momento que se hace click en una celda. Raro, ¿no?.
__________________
Add, never Remove
  #4 (permalink)  
Antiguo 30/06/2008, 09:20
 
Fecha de Ingreso: junio-2008
Mensajes: 60
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: execCommand no responde al hacer click sobre una celda

Ah! perdona no lo sabía. Es muy raro si. De todas formas no entiendo porque lo haces con ese método. Por qué no utilizas lo siguiente?:
<td bgcolor="#000000" width="20" onclick="test(this)">&nbsp;</td>
<script>
function test(td)
{
td.style.color = "#FF00FF";
}
</script>
  #5 (permalink)  
Antiguo 30/06/2008, 09:38
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 1 mes
Puntos: 9
Respuesta: execCommand no responde al hacer click sobre una celda

El objetivo del código que posteo arriba no es cambiar el color del texto de la celda. Tengo un iframe en el cual se puede escribir como si fuese un cuadro de texto. Llamando a la función execCommand puedo especificar el formato que tendrá el texto ingresado. Es para simular un cuadro de texto enriquecido.
__________________
Add, never Remove
  #6 (permalink)  
Antiguo 30/06/2008, 10:51
 
Fecha de Ingreso: junio-2008
Mensajes: 60
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: execCommand no responde al hacer click sobre una celda

Ah vale, pues en eso no te puedo ayudar que no tengo experiencia, sin embargo si me gustaria saber como funciona, a ver si eres capaz de resolverlo y me lo explicas ;)
Cita:
Iniciado por mariano_donati Ver Mensaje
El objetivo del código que posteo arriba no es cambiar el color del texto de la celda. Tengo un iframe en el cual se puede escribir como si fuese un cuadro de texto. Llamando a la función execCommand puedo especificar el formato que tendrá el texto ingresado. Es para simular un cuadro de texto enriquecido.
  #7 (permalink)  
Antiguo 30/06/2008, 11:52
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: execCommand no responde al hacer click sobre una celda

Estás accediendo mal al contenido del iframe. Incluso, la edición no funciona en Firefox. Mirá en esta faq cómo hacerlo correctamente: http://www.forosdelweb.com/2462878-post270.html
  #8 (permalink)  
Antiguo 30/06/2008, 12:53
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 1 mes
Puntos: 9
Respuesta: execCommand no responde al hacer click sobre una celda

Hola Panino5001. Tampoco es eso, ya que me funciona siempre y cuando no ponga llame a esa función desde un evento click de una celda. En el código de las FAQs ocurre el mismo error. Si tienes un tiempo prueba lo siguiente para corroborarlo: inserta una tabla como esta en el código html

<table border="1">
<tr>
<td width="20" onclick="formato('bold')">a</td>
</tr>
</table>

Luego corre la página, haz click en la celda y vas a ver que el formato del texto a ingresar no es modificado. Por ahora encontré una solución alternativa que es dentro de cada celda agregar una etiqueta de imagen y desde allí llamar a la función, pero sigo insistiendo en mi búsqueda de una solución. En caso de hallarla, sin duda que la voy a postear aquí. Saludos.
__________________
Add, never Remove
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:29.