Scroll en una iframe

Aquí va mi pregunta:
Tengo una pagina con 2 frames. La frame de la izda es solo el menu y todo sucede en la otra frame (llamemosla MAINFRAME).
Dentro de MAINFRAME, una de las páginas que cargo (llemémosla UNO) tiene una iframe que muestra y "scrollea" otra página htm. Esta página solo es una larga lista de autores(hecha con una tabla e imágenes 0/1)cada uno con su link correspondiente.
Cuando haces click en un autor, aparece una página nueva dentro de MAINFRAME (que de hecho sustituye a UNO) y cuando acabas y vuelves a UNO se ha respetado la intentar vertical de scroll en la que estabas cuando hiciste click. Esto es muy útil, sobre todo si la página que scrolleas es larga!
Haciendo lo mismo pero con un scroll horizontal, no guarda la intentar horizontal de scroll y siempre vuelve al principio. ¿Me puedes ayudar?
Para ver un ejemplo puedes visitar:
www.debuenatinta.com/webusr
Pulsa "OBRA GRÁFICA --> por artistas" para el scroll vertical
y "OBRA GRÁFICA --> por obra" para el scroll horizontal

1 Respuesta

Respuesta
1
Entonces lo único que se me ocurre es que le pases un parámetro a la página a la que vas y que el botón de volver sea un link al anchor que le pasas en dicho parámetro... ¿tienes lenguajes de servidor?
En caso de que no lo tengas, puedes hacerlo con javascript.
En la página a la que se le pasa el parámetro como:
pagina.html?NUMERO_DE_ANCLA
Y con un javascript tipo:
var n=self.location.href.split("?")[1];
Esto es, troceas por "?" y lo que haya detrás es el numero de ancla al que tienes que volver.
Gracias! Esto funciona pero aun tengo un pequeño problema. Cuando vuelvo atrás le paso el nombre del ancla de la página de la que vengo, pero en realidad tengo que ir a una página previa que tiene una iframe dentro de la que está la página de la que vengo.
¿Cómo paso el parámetro "nombre_ancla" a PAG1 que a su vez tiene que llamar a PAG2#"nombre_ancla"? Es decir, cuando vuelvo a PAG1 como sé de que página vengo (document.referrer no funciona y history.back() o history[-1] tampoco al estar en una frameset. Todos dan como resultado undefined!)
Se lo que ocurre. Ocurre que tendrías que poner todo el tag iframe desde un javascript, por ejemplo, en la función ancla:
function ancla()
{
if (self.location.href.split("?")[1])
var n= self.location.href.split"?") [1];
else
n="";
if (n!="")
irDonde="PAG2.htm#"+n;
else
irDonde="PAG2.htm";
document.write("<iframe src="+IrDonde+"></iframe>");
}
Esto hace que tengas que poner la función en el lugar donde quieres el iframe.
Ya había intentado esto también. Al final lo he conseguido pero no funciona (como tu y yo pensábamos lógicamente)poniendo:
document.write("<iframe src="+IrDonde+"></iframe>");
sino poniendo esto:
if (self.location.href.split("?")[1]){
var n= self.location.href.split("?")[1];
document.write
('<iframe src="PAG2.htm#'+n+'" </iframe>')}
else{
document.write
('<iframe src="PAG2.htm" </iframe>')}
En cualquier caso lo he conseguido y agradezco muchísimo tu interés y tu tiempo!
Hasta otra!
Hola! Ya lo tendría todo funcionando si no fuera por un pequeño detalle. No me deja pasarle como variable el src de IFRAME. Es decir, en PAG1 tengo una función que ejecuta en BODY onLoad:
function ancla()
{
if (self.location.href.split("?")[1])
var n= self.location.href.split"?") [1];
else
n="";
if (n!="")
irDonde="PAG2.htm#"+n;
else
irDonde="PAG2.htm";
}
Mas adelante le paso en la etiqueta IFRAME:
IFRAME src="+IrDonde" etc...
Pero no lo acepta (no muestra ninguna página) de ninguna forma lo ponga como lo ponga (he probado todo tipo de combinaciones de comillas y sin ellas!)
¿Qué hago mal?
Gracias de nuevo!
Entiendo lo que me comentas.
El problema tiene que ver con la gestión de links por parte del navegador. Es porque linkan/linkas imágenes. Si pones el link en la palabra, la intentar se respeta.
No me preguntes porque pasa, pero así es.
Una solución puede ser poner el href del link a un ancla que pongas a la altura de la imagen (poner el ancla justo antes de la imagen, por ejemplo) y llamar a la función javascript que te pone la imagen desde un onClick.
Creo que así solvente una vez este problema y espero que te sirva. En caso de que no te vaya bien, coméntamelo y lo miro con más detalle, ¿ok?
Lo primero gracias por tu respuesta! He probado lo que me comentas pero no he tenido ningún éxito (haciendo los links con el texto y poniendo un anchor).
¿Hay algo más que pueda probar? Me está comiendo el coco y lo necesito para esa página.
Gracias de antemano.
Hazme el favor de valorarme la pregunta, hombre!
No te digo que me pongas el 5 que me merezco por ayudarte ;) [es broma], pero al menos finaliza la pregunta para que no se me quede en el aire, ¿ok?
Me alegro de haberte ayudado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas