Este artículo viene a complementar otro anterior LEER AQUÍ. Utilizaremos
la misma técnica aplicándola a otro problema. Es decir, pasaremos información desde una primera página a otra a través de la dirección url (método GET). La segunda página procesará los datos y actuará en consecuencia.
El problema, planteado en un post del foro de Maestros de Web, es el siguiente: "desde una página 'index.html' se enlaza con otra 'capas.html' de tal manera que en ésta aparezca la/s capa/s que se indiquen mediante enlaces del tipo: 'capas.html?var1=a&var2=b...' (siendo a, b, c, d los nombres de las capas presentes en la segunda página).
Adicionalmente, se pedía que las capas pudieran hacerse visible o invisibles a voluntad del usuario, mediante la pulsación de un enlace.
Indice.
1.- Probando el script.
La demo funciona de una manera simple. Cuando pulse en el siguiente enlace se va a abrir una pequeña ventana. En ella aparecerá la página 'index.html' en la que hay distintos enlaces de prueba. Pulse en cualquiera de ellos. Se abrirá, en la misma ventana, la página 'capas.html' mostrando la/s capa/s elegidas en la página anterior. En esta segunda página podrá, además, cambiar el estado de visibilidad de cualquiera de las capas. Es decir, hacer visible una capa invisible y viceversa.
2.- Código de 'index.html'.
<html>
<head>
<title>
Página con los enlaces
</title>
</head>
<link rel="stylesheet" href="../estilo2.css" type="text/css">
<body>
<h3>Página 'index.html'</h3>
<div align="center">
<br>
<a href="capas.html?var1=a">
<b>ver 'capa a'</b></a>
<br><br>
<a href="capas.html?var1=b">
<b>ver 'capa b'</b></a>
<br><br>
<a href="capas.html?var1=c">
<b>ver 'capa c'</b></a>
<br><br>
<a href="capas.html?var1=d">
<b>ver 'capa d'</b></a>
<br><br>
<a href="capas.html?var1=b&var2=d">
<b>ver 'capa b y d'</b></a>
<br><br>
<a href="capas.html?var1=a&var2=c&var3=d">
<b>ver 'capa a, c y d'</b></a>
<br><br><br><br>
<a href="javascript:window.close()">CERRAR</a>
</div>
</body>
</html>
3.- Código de 'capas.html'.
<html>
<head>
<title>
Página con las capas
</title>
<style type="text/css">
#a{visibility:hidden;width:50%;margin-top:20px;top:100px;color:#FF0000;border:2px solid #FF0000;background-color : #F8F8FF;}
#b{visibility:hidden;width:50%;margin-top:20px;top:150px;color:#666699;border:2px solid #666699;background-color : #F8F8FF;}
#c{visibility:hidden;width:50%;margin-top:20px;top:200px;color:#666600;border:2px solid #666600;background-color : #F8F8FF;}
#d{visibility:hidden;width:50%;margin-top:20px;top:250px;color:#FF66CC;border:2px solid #FF66CC;background-color : #F8F8FF;}
</style>
<link rel="stylesheet" href="../estilo2.css" type="text/css">
<script language="JavaScript" type="text/JavaScript">
function leerGET(){
var cadGET = location.search.substr(1,location.search.length);
var arrGET = cadGET.split("&");
var asocGET = new Array(); var variable = "";
var valor = "";
var numVariables = arrGET.length;
for(i = 0 ; i < numVariables; i++){
var aux = arrGET[i].split("=");
variable = aux[0];
valor = aux[1];
asocGET[variable] = valor;
}
return asocGET;
}
function mostrarCapa(){
var paresVarValor = leerGET();
for (obj in paresVarValor)
{
var variable = paresVarValor[obj];
document.getElementById(variable).style.visibility = 'visible';
}
}
function modificarVisibilidad(capa){
with (document.getElementById(capa).style){
(visibility == "visible")? visibility = "hidden":visibility = "visible";
}
}
</script>
</head>
<body onload="mostrarCapa()">
<h3>Página 'capas.html'</h3>
<div align="center">
<a href="javascript:void(0)" title="modificar visibilidad capa a" onClick="modificarVisibilidad('a')">Modificar Visibilidad de CAPA 1 (a)</a><br>
<a href="javascript:void(0)" title="modificar visibilidad capa b" onClick="modificarVisibilidad('b')">Modificar Visibilidad de CAPA 2 (b)</a><br>
<a href="javascript:void(0)" title="modificar visibilidad capa c" onClick="modificarVisibilidad('c')">Modificar Visibilidad de CAPA 3 (c)</a><br>
<a href="javascript:void(0)" title="modificar visibilidad capa d" onClick="modificarVisibilidad('d')">Modificar Visibilidad de CAPA 4 (d)</a><br>
<div id="a">
capa 1 (a)
</div>
<div id="b">
capa 2 (b)
</div>
<div id="c">
capa 3 (c)
</div>
<div id="d">
capa 4 (d)
</div>
<br>
<a href="javascript:history.go(-1)">VOLVER A PROBAR</a> || <a href="javascript:window.close()">CERRAR</a>
</div>
</body>
</html>