Mensajes Joomla invisibles en unos segundos  

 
Laura
 Laura
Usuario eminente

En el index de mi página he puesto este código:

<?php if($msg (' ')) { ?> 
                                   
									
										var strCmd = "document.getElementById('system-message').style.display = 'none'";
										var waitseconds = 3;
										var timeOutPeriod = waitseconds * 1000;
										var hideTimer = setTimeout(strCmd, timeOutPeriod);
										
											

En todos los navegadores funciona, a los 3 segundos desparece el mensaje, pero en IE7 me dice que hay un problema con el script y es normal porque siempre aparece el script, debería solo salir si se cumple la condición que haya un mensaje, por lo que IE7 me dice que no encuentra el objeto.

¿Alguna sugerencia?

Muchas gracias.

Un saludo.

Citar
Respondido : 08/08/2010 10:31 pm
David Noguera
 David Noguera
Miembro Admin

Puedes poner el código de error que te está dando IE??, podría ser que el error no esté en este script, si no en un script que se ejecuta anteriormente, pero al fallar paraliza la ejecución de javascript en el navegador y por eso no se oculta el mensaje.

Saludos.

Si te ha servido de ayuda, déjanos tu testimonio con un link hacia tu Web y mejora su posicionamiento:
Enviar testimonio
¡Gracias!.

ResponderCitar
Respondido : 09/08/2010 6:03 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

Lucas
 Lucas
Miembro Admin

Hola,

Añado a lo que dice David que si pones la url para que podamos verlo será más fácil ver el fallo.

Si te ha servido de ayuda, déjanos tu testimonio con un link hacia tu Web y mejora su posicionamiento:
Enviar testimonio
¡Gracias!.

ResponderCitar
Respondido : 09/08/2010 6:06 pm
Laura
 Laura
Usuario eminente

El IETester me arroja el siguiente fallo en IE7:

Línea 1 Carácter 1 Object required

El error está en este script (si lo quito ya no sale el error de script). La variable que recoge si hay mensajes no debe ser esa, le estoy diciendo que si esa variable no está vacia que realice el script, pero en todas las páginas sale el script, así que creo que la variable por lógica debería ser otra, una que recoja los mensajes activos.

La página si queréis verla es esta:

Página de prueba[/url]

El código tiene en la cabecera este código condicional: (no sé porque no ha salido en el primer mensaje que os había puesto)
***<?php if($msg (' ')) { ?>***
Y en el final: ***<?php } ?<***

Gracias por vuestro interés.
Saludos.

ResponderCitar
Respondido : 09/08/2010 6:47 pm

Cursos Gratuitos WordPress

David Noguera
 David Noguera
Miembro Admin

Hola Chisca, yo creo que no es necesario usar php para esto, prueba con este código a ver si no te da problemas:

window.onload = inicio;

function inicio(){

if(document.getElementById('system-message')){
var strCmd = "document.getElementById('system-message').style.display = 'none'";
var waitseconds = 3;
var timeOutPeriod = waitseconds * 1000;
var hideTimer = setTimeout(strCmd, timeOutPeriod);
}

}

Prueba poniendo esto en el fichero index.php de tu plantilla como un script de javascript normal y corriente y debería de funcionar. Ya nos cuentas.

Saludos.

Si te ha servido de ayuda, déjanos tu testimonio con un link hacia tu Web y mejora su posicionamiento:
Enviar testimonio
¡Gracias!.

ResponderCitar
Respondido : 11/08/2010 12:12 am
Laura
 Laura
Usuario eminente

Guauuuuuuuuuuuuu...funciona, funciona.

Ahora ya no sale ningún mensaje de error en el script.

Muchísimas gracias.

Saludos.

ResponderCitar
Respondido : 11/08/2010 10:51 am

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

David Noguera
 David Noguera
Miembro Admin

Hola Chisca,

Me alegro de que hayas podido solucionar tu problema 🙂

Por otra parte, como recomendación general, para evitar este tipo de incompatibilidades entre navegadores, te recomiendo que la próxima vez, investigues sobre el framework Mootools que incorpora Joomla, o un framework javascript adicional como jQuery, ya que de esta forma se evitan incompatibilidades entre navegadores y bastantes dolores de cabeza...

Saludos.

Si te ha servido de ayuda, déjanos tu testimonio con un link hacia tu Web y mejora su posicionamiento:
Enviar testimonio
¡Gracias!.

ResponderCitar
Respondido : 11/08/2010 1:24 pm
Luis Mendez Alejo
 Luis Mendez Alejo
Miembro Admin

Hola David,

Yo intenté usar el script "sin éxito" :blush: no se porque no me funcionaba, cuando entiendo que su objetivo era abrir una ventana popup durante unos segundos en función de una variable de sesión ¿correcto?

Saludos

Si nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar Testimonio
¡Gracias!.

ResponderCitar
Respondido : 11/08/2010 3:02 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

David Noguera
 David Noguera
Miembro Admin

Hola gnumax,

no exactamente..
el objetivo del script de Chisca es ocultar el mensaje de error que muestra Joomla cuando se elimina algún registro/artículo/etc.. en Joomla. Si te fijas sale un mensaje que suele indicar algo así como "No se ha podido hacer X por el motivo Y", generalmente con fondo rojo.
Lo que hace el script es, pasados 3 segundos, ocultar este mensaje estableciendo la variable CSS "display" a "none", esto se hace estableciendo un contador con la función setTimeout.
Para ello se usa el DOM de javascript que permite modificar los CSS de un elemento de la página usando javascript.

El problema que le sucedía a Chisca es que no hacía la comprobación con un if para ver si el mensaje existía, lo que provocaba un error en IE que queda mal y que indicaba que el objeto al cual se le estaba intentando modificar la propiedad CSS no existía.

Saludos.

Si te ha servido de ayuda, déjanos tu testimonio con un link hacia tu Web y mejora su posicionamiento:
Enviar testimonio
¡Gracias!.

ResponderCitar
Respondido : 11/08/2010 3:30 pm
Luis Mendez Alejo
 Luis Mendez Alejo
Miembro Admin

Hola David,

Pues si que estaba yo perdido, ufff!!! :S eso me pasa por leer tan rápido en vertical. Igualmente gracias por la explicación, ahora me quedo muy claro el uso del script aunque supongo que apagando la variable $display_errors en php se evitará ese tipo de avisos ¿no?

Saludos

Si nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar Testimonio
¡Gracias!.

ResponderCitar
Respondido : 11/08/2010 3:48 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

David Noguera
 David Noguera
Miembro Admin

Jejejeje,

bueno, en realidad tampoco, por que el error era de javascript no de PHP, por lo que la variable display_errors del php.ini poco tendría que hacer en este caso 🙂

Sí, la lectura trasversal es lo que tiene 😉

Saludos!

Si te ha servido de ayuda, déjanos tu testimonio con un link hacia tu Web y mejora su posicionamiento:
Enviar testimonio
¡Gracias!.

ResponderCitar
Respondido : 11/08/2010 4:03 pm
Luis Mendez Alejo
 Luis Mendez Alejo
Miembro Admin

Hola David,

Gracias por la aclaración en mi confusión de conceptos 😆

En todo caso, ¿como podría hacer "por código" para que el index.php de la plantilla en cuestión abra en popup un modulo determina (una imagen) sin tener que instalar extensiones? pues pensé que ese era el objetivo del script y de ahí mi confusión.

Gracias

Si nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar Testimonio
¡Gracias!.

ResponderCitar
Respondido : 11/08/2010 4:37 pm

Cursos Gratuitos WordPress

Por favor Iniciar Sesión o Registro