Foros del Web » Programando para Internet » Javascript »

evento onError para cargar imagen

Estas en el tema de evento onError para cargar imagen en el foro de Javascript en Foros del Web. Muy buenas! me pueden decir si es correcto el planteamiento del evento onError para que cuando salte al no cargar una imagen que no existe ...
  #1 (permalink)  
Antiguo 12/07/2005, 04:15
 
Fecha de Ingreso: enero-2005
Mensajes: 66
Antigüedad: 19 años, 9 meses
Puntos: 0
Exclamación evento onError para cargar imagen

Muy buenas!
me pueden decir si es correcto el planteamiento del evento onError para que cuando salte al no cargar una imagen que no existe en el servidor la sustituya por otra?
LA etiqueta para que busque una imagen es esta:
<img src="fotos/'.$row["id_foto"].'.gif" name="no_foto" onError="no_imagen()" >
y luego he creado una función

function no_imagen(){
document.images["no_foto"].src = "0.gif"
}

Alguien sabe como puedo hacer?
  #2 (permalink)  
Antiguo 12/07/2005, 04:24
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
Pon mejor, para que te sirva en todas las imágenes:
Código PHP:
<img src="fotos/'.$row["id_foto"].'.gif" name="no_foto" onError="no_imagen(this)" /> 
Código PHP:
function no_imagen(esto){
esto.src "0.gif"

Un saludo!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 12/07/2005, 12:58
 
Fecha de Ingreso: enero-2005
Mensajes: 66
Antigüedad: 19 años, 9 meses
Puntos: 0
pues no me sale

he intentado lo que me has dicho y nada!
Me puedes guiar un poco más?
a que te refieres con "esto" en function no_imagen(esto){ ?

por cierto otra pregunta: Me has contestado con unos cuadros de texto que ponía Código php.
¿es que estoy preguntando cosas de php? y me estoy equivocando de foro?Lo cierto es que esto que estamos tratando va dentro de un php que busca en la base de datos,pero lo de onError es Javascript, no?
y Luego la function va dentro de etiquetas <script>.
Ya sé que te pregunto cosas básicas, pero es que me he confundido un poco(no tengo muy buena base) pero voy aprendiendo.

Bueno, gracias
  #4 (permalink)  
Antiguo 12/07/2005, 13:18
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
Claro que te lo puedo explicar un poco más, no te preocupes!

Empecemos por la imagen:

<img src="fotos/'.$row["id_foto"].'.gif" name="no_foto" onError="no_imagen(this)" />

Decimos que en caso de error ejecute la función no_imagen mandando como variable el objeto imagen que lo contiene, es decir a ella misma. Para eso ponemos this dentro de los paréntesis. this, como bien sabrás, en inglés significa esto. Es decir que se manda como variable esto que no es más que el objeto imagen que se llama en este caso "no_foto". de forma que poner this en este caso sería como poner document.images['no_foto']. Pero tiene una ventaja, que si lo usas con otra imagen no tendrás que poner otra cosa más que this. Porque en ese caso la variable this estará englobando esa otra imagen. No sé si me explico. En resumidas cuentas this representa al objeto donde está la llamada a la función.

Ahora vamos con el script. Es importante que se encuentre entre <script> y </script> ya que si no el navegador no lo tomará como ejecutable y lo mostrará como texto. Así ponemos en el head:
<head>
<script>
function no_imagen(esto){
esto.src = "0.gif"
}
</script>

[resto del head...]

en la cabecera de la function ves que pone esto entre los paréntesis. "esto" es el nombre que le he dado a la variable que va a contener lo que he mandado con la llamada a la función, que si no me equivoco hemos puesto this, es decir el objeto imagen. Podía haber puesto imagen o pepe en vez de esto.

Un ejemplo simple sería:
<script>
function hola(cosaRara){
alert(cosaRara)}

hola("pepe");
</script>

y dentro lo que pone es:
esto.src = "0.gif"
esto representa al objeto que contiene a la llamada a la función, es decir la imagen. Por lo que estamos diciendo que la propiedad src que es la ruta a la imagen es"0.gif".

Si tenemos en cuenta que llamamos a la función cuando hay algún error en la carga de la imagen, nos damos cuenta de que le estamos diciendo que si hay algún error en la carga de una imagen que cargue la imagen 0.gif.

Espero que te haya servido mi explicación!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #5 (permalink)  
Antiguo 12/07/2005, 13:47
 
Fecha de Ingreso: enero-2005
Mensajes: 66
Antigüedad: 19 años, 9 meses
Puntos: 0
pues sigue sin salir!He puesto esto:
<head>
<script language="javascript" type="text/javascript">

function no_imagen(esto){
esto.src ="0.gif"
}

</script>
</head>
<body>...
<a href="javascript:imagen('.$row["id_foto"].')"><img src="fotos/'.$row["id_foto"].'.gif" name="no_foto" onError="no_imagen(this)" border="0"></a>
....

Se te ocurre qué puede pasar?
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 11:44.