Foros del Web » Programando para Internet » Javascript »

no me carga la imagen y ya he dado mil vueltas.

Estas en el tema de no me carga la imagen y ya he dado mil vueltas. en el foro de Javascript en Foros del Web. Hola, soy nuevo en javascript (este es el primer paso que doy) y he encontrado que puedo poner el siguiente código para, al hacer click ...
  #1 (permalink)  
Antiguo 03/02/2010, 20:51
 
Fecha de Ingreso: febrero-2010
Mensajes: 26
Antigüedad: 14 años, 3 meses
Puntos: 0
no me carga la imagen y ya he dado mil vueltas.

Hola, soy nuevo en javascript (este es el primer paso que doy) y he encontrado que puedo poner el siguiente código para, al hacer click en una imagen, que me cargue otra en una capa nueva.

function mostrar(foto) {
document.getElementById('marco').style.background = 'url("foto")';
}

Se que la función funciona, porque si pongo
function mostrar(foto) {

document.getElementById('marco').style.background = #cccccc

o en vez de el color directamente el nombre de =url (nombredelafoto.jpg)

me sale perfecto, por lo que supongo que el problema está en que no recoje la variable 'foto'. Y le he dado mil vueltas, con comillas simples, con comillas dobles, sin comillas, intentando mandar la variable de otra forma... pero estoy más que perdido.

¿alguien me puede decir qué hago mal?

por si acaso la función la invoco deade aquí:

<img src="casarbol.jpg" title="casa del árbol" OnClick="mostrar(MG1374.jpg)"/>


Otra cosa... he leido que esto es javascript invasivo, he logrado tener una ligera idea de lo que es eso, pero ni idea de como hacer esto mismo con javascript no invasivo. Solo se que tengo que poner el código en un documento ajeno al html.

Gracias por adelantado.
  #2 (permalink)  
Antiguo 03/02/2010, 21:00
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: no me carga la imagen y ya he dado mil vueltas.

Debes concatenar:
Código Javascript:
Ver original
  1. document.getElementById('marco').style.backgroundImage = 'url(' + foto + ')';
Además, debes usar comillas a la hora de llamar a la función y pasarle el parámetro:
Código Javascript:
Ver original
  1. mostrar('MG1374.jpg');
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 03/02/2010, 21:07
 
Fecha de Ingreso: febrero-2010
Mensajes: 26
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: no me carga la imagen y ya he dado mil vueltas.

MUCHIIIIIIISIMAS GRACIAS

de verdad, llevaba loco un rato largo...


a la hora de invocar la función si que le ponía comillas... es que se me despistaron.


¿Alguna forma de conseguir que esto no sea invasivo?
¿porqué es invasivo?

(si no quereis responder está bien, ya con esto os estoy más que agradecido)
  #4 (permalink)  
Antiguo 03/02/2010, 21:10
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: no me carga la imagen y ya he dado mil vueltas.

Es invasivo porque hay código Javascript directamente en el HTML.
De otra forma sería:
Código Javascript:
Ver original
  1. window.onload = function() {
  2.     document.getElementById("imagen").onclick = function() {
  3.         mostrar('MG1374.jpg');
  4.     }
  5. }
Código HTML:
Ver original
  1. <img src="casarbol.jpg" title="casa del árbol" id="imagen" />
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 10/02/2010, 15:46
 
Fecha de Ingreso: febrero-2010
Mensajes: 26
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: no me carga la imagen y ya he dado mil vueltas.

Gracias,

Lo cambio pa que esté bien (lo mejor es que funciona, lo entiendo menos que el invasivo pero poco a poco... lo voy pillando)

Etiquetas: carga, dado
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 16:46.