Ver Mensaje Individual
  #11 (permalink)  
Antiguo 06/10/2005, 08:29
Avatar de tunait
tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
El tema es cargar en el marco principal de un frameset un documento distinto al que está especificado dentro del propio frameset y/o que además salte a un anchor determinado.

Si tenemos un frameset en el cual se han definido dos marcos, en uno carga menu.html y en el otro principal.html y queremos que desde un link se cargue este frameset pero que en vez de cargar principal.html como está definido en el código del frameset se cargue otro documento, por ejemplo pagina2.html habremos de poner un script de control que se encargue de averiguar si queremos que se cargue automáticamente otro documento en el marco principal. El script de control lo pondremos dentro del documento del menú del frameset que ha de realizar el cambio.

El script es el siguiente:

Código:
<script type="text/javascript">
<!--
/*script por tunait!. Favor de mantener el crédito al autor, gracias*/
var marco = "mainFrame";
var pag, anc,dir, pa = parent.location.search, pat = /pag|anc/
if(pa.length > 1){
	pa = pa.substr(1).split("&");
	for(m=0; m<pa.length; m++){
		if(pat.test(pa[m].substr(0,3))){
			eval(pa[m].split("=")[0] + "= '" + pa[m].split("=")[1] + "'");
		}
	}
	if(pag || anc){
		anc = anc ? '#' + anc : ''
		dir = pag ? pag + anc : anc ? anc : false
	}
	if(dir){
		eval('parent.' + marco + '.location.href = dir;');
	}
}
//-->
</script>
En la segunda línea del script hay que definir el nombre del marco en donde se va a cargar el documento

var marco = "mainFrame";

Para que esto funcione hay que indicar al link que cargue el frameset que queremos que haga el cambio de documento enviando un parámetro en la url

el link llamará al frameset pasando el parámetro pag con la página a cargar.

Si se quiere que cargue pagina1.html se le linka a frameset.html?pag=pagina.html

Si además se quiere que salte a un anchor concreto dentro de ese documento se le envía un segundo parámetro anc con el nombre del anchor

frameset.html?pag=pagina.html&anc=uno

<a href="frameset.html?pag=pagina.html&anc=uno"> link al frameset </a>

Eso cargará el frameset con pagina.html a la altura del anchor uno en el frame principal en lugar de principal.html

Avísame si no te queda claro o déjame saber si te fue bien

Un saludo

Última edición por tunait; 06/10/2005 a las 08:48