Hola.
Tengo 2 enlaces que se abren en un iframe y me gustaria usar el mismo boton en la pagina. Es decir que pulsas y se abre el uno en el iframe, vuelves a pulsar y se abre el dos. Y asi sucesivamente, la idea es que se alterne.
Gracias.
| |||
Cambiar enlace con un solo boton Hola. Tengo 2 enlaces que se abren en un iframe y me gustaria usar el mismo boton en la pagina. Es decir que pulsas y se abre el uno en el iframe, vuelves a pulsar y se abre el dos. Y asi sucesivamente, la idea es que se alterne. Gracias. |
| |||
Hola Tunait. <script> var enlace1="links-1.html" var enlace2="links-2.html" var destino="cajita" var i=1; function cambiar() { if (i == 1) { document.write ('<a href="') document.write (enlace1) document.write ('" target="' + destino + '"></a>') i=2; } else { document.write ('<a href="') document.write (enlace2) document.write ('" target="' + destino + '"></a>') i=1; } } </script> onClick="cambiar()" No tengo el codigo hecho pero esto es lo que se me ocurre. La idea es que tienes una pagina en la que hay un iframe que abre por defecto (link-1). En el mismo iframe se va a poder abrir otro enlace cambiandolo por el anterior (link-2). Para cambiar el enlace link-1 por el link-2 hay un boton en la pagina principal. Este boton al pulsar alternaria el contenido del iframe, es decir el link-1 por el link-2. Gusto en saludarte de nuevo. Isabel.
__________________ Directorio de Fotografía |
| ||||
... por cierto que se podría simplificar mucho más de esta forma <a href="links-1.html" target="cajita" onclick="this.href='links-2.html'"> enlacillo </a> ... y omitir el resto pero de la otra forma puedes usarlo para más links si se diera el caso (los agregas todos al array y te iría pasando de uno en uno) |
| |||
Bien lo que ocurre es que con ese ultimo metodo no se si luego una vez en el link-2 y al volver a pulsar se cambie por el link-1 pues esta es la idea. Es decir, tienes el 1 pulsas y cambia al 2, vuelves a pulsar y ahora cambia al 1 y asi... Con el script que enviaste no logro que funcione. En principio al pulsar sale link-1 pero al pulsar de nuevo no lo cambia por el link-2.
__________________ Directorio de Fotografía |
| ||||
ah, ese detalle no me lo distes si ha de comportarse como interruptor prueba así
Código:
El evento onclick sucede antes de que el link se active. Es decir, si cambiamos algo en el evento onclick realizará el cambio de href antes de ir a él, con lo que si paramos el mouse sobre el link nos mostrará en la barra de estado el link al que ha ido en vez de mostrarnos el link al que irá y no queda bien (despista)<script type="text/javascript"> var enlacillos = new Array('http://www.yahoo.es/','http://www.google.es/') var cont = 0 function cambia(cual){ cual.href = enlacillos[cont] cont = cont == 0 ? 1 : 0; } </script> he observado que en el momento de cargar el link en un iframe el link pierde el foco así que creo que sería más adecuado usar el evento onblur <a href="http://www.yahoo.es/" target="cajita" onblur="cambia(this)"> enlacillo </a> Mira a ver si te sirve. Si no la solución pasaría por cambiar el documento del iframe usando javascript en vez de html (usar cajita.location.href en vez del href del link) Para que además de funcionar el cambio el link muestre la página destino podría quedar entonces así
Código:
... y el link<script type="text/javascript"> var enlacillos = new Array('http://www.yahoo.es/','http://www.google.es/') var cont = 0, cont2 = 1; function cambia(cual){ cajita.location.href = enlacillos[cont] cual.href = enlacillos[cont2] cont = cont == 0 ? 1 : 0; cont2 = cont2 == 1 ? 0 : 1; } </script> <a href="http://www.yahoo.es/" target="cajita" onclick="cambia(this);return false"> enlacillo </a> cambia los links del ejemplo, obviamente, que los puse a yahoo y a google para poder saber qué página estaba llamando en vez de un no se puede mostrar (no tengo documentos con link-1 ni link-2 por nombre A ver si ahora sí te sirve Un saludo |
| |||
La primera solucion funciona perfectamente y probare a poner onblur aunque el link de la barra de estado no me aparece porque tengo un script que lo mantiene fijo con un titulo. Ahora bien, para redondear el tema me he atrevido a añadir al script la posibilidad de cambiar el texto de los botones. De esta manera cambiara no solo el enlace sino que ademas cambiara el texto del boton. Lo he probado y funciona bien todo y quedaria asi. var enlacillos = new Array('yahoo.com','google.com') var txtboton = new Array('Este es Yahoo','Este es Google') var cont = 0 function cambia(cual){ cual.href = enlacillos[cont] cont = cont == 0 ? 1 : 0; document.getElementById('botoncito').innerText = txtboton[cont]; } botoncito seria el ID de la etiqueta A y en txtboton tendriamos los 2 textos de los botones. El cambio del texto se haria en funcion del valor de cont. Me gustaria que me explicaras del script la linea "cont = cont == 0 ? 1 : 0;" Gracias.
__________________ Directorio de Fotografía Última edición por Isabel_Maria; 21/05/2005 a las 09:59 |
| ||||
Hola de nuevo Te sugiero cambies el texto de esta forma cual.firstChild.nodeValue = txtboton[cont]; en vez de así document.getElementById('botoncito').innerText = txtboton[cont]; innerText no es standard y no funcionará en algunos navegadores. De la forma que te propongo se usa el DOM y está bien soportado por los navegadores. Respecto a esta línea cont = cont == 0 ? 1 : 0; Es una forma de asignar un valor a una variable usando una forma condicional El condicional tiene esta sintaxis se realiza una afirmación o pregunta ? valor en caso de ser verdadero : valor en caso de ser falso; cont == 0 (afirmación o pregunta; cont es igual a cero?) Si devuelve true toma el valor situado a la izquierda de los dos puntos (:) Si devuelve false toma el de la derecha ...y usamos ese condicional para asignar el valor obtenido a una variable cont = (lo que devuelva el condicional) ¿me expliqué?? |
| |||
Perfectamente bien explicado (como siempre). Muchas gracias.
__________________ Directorio de Fotografía |