Foros del Web » Programando para Internet » Javascript »

Abrir hmtl en iframe desde option

Estas en el tema de Abrir hmtl en iframe desde option en el foro de Javascript en Foros del Web. Hola, soy nuevo por aqui espero no decir ninguna burrada. El caso es que tengo este campo de seleccion: Código HTML: <select name= "ofertas" > ...
  #1 (permalink)  
Antiguo 29/11/2009, 08:15
Avatar de jmorduna  
Fecha de Ingreso: noviembre-2009
Mensajes: 4
Antigüedad: 14 años, 5 meses
Puntos: 0
Abrir hmtl en iframe desde option

Hola, soy nuevo por aqui espero no decir ninguna burrada. El caso es que tengo este campo de seleccion:

Código HTML:
<select name="ofertas">
    <option disabled="disabled">Ofertas 2 x 1</option>
 	<option value="1" onclick="window.open(isla.html,target='eniframe')">viaje a la isla - 456€</option>
 	<option value="2" onchange="oferta(agua.html)">Viaje a el agua - 900€</option>
</select> 
y este iframe creado en la pagina:

Código HTML:
<iframe frameborder="1" width=auto height=auto name="eniframe" scrolling=auto></iframe> 
Me gustaria que cada vez que se seleccionara una opcion de el campo de seleccion se mostrara la web pertinente en el iframe (target=eniframe).

He probado creando un script con la opcion window.open y poniendo la URL y luego el nombre del target en el segundo campo, pero no me lo reconoce. Tambien he probado poniendo en el parametro onclick o en onchange, en vez de un acceso al script (oferta(URL)) la funcion en si y sigue sin hacer nada. Tampoco se muy bien que es mejor utilizar, onclick o onchange.

Código HTML:
<script type="text/javascript">
function oferta(URL){
	
	 window.open(URL, target="eniframe") // o window.open(URL,"eniframe")
	
}
</script> 
Si que funciona si utilizo href

Código HTML:
<a href="isla.html", target="eniframe">Enlace</a> 
Pero no se como incluir esto dentro de option.

Tambien intente hacer un script pasandole el elemento value y que hiciera window.open dependiendo de si es la opcion 1 o la 2, pero para el caso tengo el mismo problema, que no se me abre.

Agradeceria si me dierais algunas directivas. Gracias de antemano
  #2 (permalink)  
Antiguo 29/11/2009, 17:26
 
Fecha de Ingreso: octubre-2009
Mensajes: 97
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: Abrir hmtl en iframe desde option

Trata con este codigo:

Código:
<select name="ofertas" onchange="document.getElementById('eniframe').src=this.value">
<option disabled="disabled">Ofertas 2 x 1</option>
<option value="isla.html">viaje a la isla - 456€</option>
<option value="agua.html">Viaje a el agua - 900€</option>
</select>
<br><iframe frameborder="1" width=auto height=auto id="eniframe" scrolling=auto></iframe>
  #3 (permalink)  
Antiguo 01/12/2009, 16:02
Avatar de jmorduna  
Fecha de Ingreso: noviembre-2009
Mensajes: 4
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Abrir hmtl en iframe desde option

Perfecto, el name es el problema, pero con id funciona bien. Gracias
  #4 (permalink)  
Antiguo 01/12/2009, 16:20
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Abrir hmtl en iframe desde option

Cita:
Iniciado por jmorduna Ver Mensaje
Perfecto, el name es el problema, pero con id funciona bien. Gracias
Bueno, bueno... el name nunca debe ser problema con un sistema de frames... solo deben hacerse las cosas bien

Ya que usas javascript y un control de formulario, podrías enviar ese formulario cambiando el action, pero poniendo el target del iframe:

Código:
<form target="el_name_del_iframe"...
<select onchange="this,form.action = this.value; this.form.submit()"...
También se puede usar el método open:

Código:
<select onchange="window.open(this.value, 'el_name_del_ifrme')"...
O usar correctamente el sistema de frames:

Código:
onchange="window.frames['el_name_del_iframe'].location.href = this.value"
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 12:09.