Nuevamente HOLA y GRACIAS PatomaS:
Q se me ha encendido la lucecita.
Te/os explico.
He hecho lo siguiente
Código:
var capa
var capasTipoLogin = new Array();
capasTipoLogin[0] = 'rbAlumnosEmpresas'
capasTipoLogin[1] = 'rbAlumnos'
capasTipoLogin[2] = 'rbEmpresas'
function cambiaCapa(idCapa){
for (i=0; i<capasTipoLogin.length; i++) {
//obtencion del objeto de la capa a visualizar
if (document.layers) {
capa = eval("document." + capasTipoLogin[i]);
}
if (document.all) {
capa = eval(capasTipoLogin[i] + ".style");
}
if (document.getElementById) {
capa = eval('document.getElementById("' + capasTipoLogin[i] + '").style');
}
if (i==idCapa) {
capa.display = "";
capa.visibility = (document.layers) ? "show" : "visible" ;
}
else {
capa.display = "none";
capa.visibility = (document.layers) ? "hide" : "hidden" ;
}
}
}
Con esto, y con llamadas desde los enlaces con cambiaCapa(n), siendo n el numero de indice de la capa a mostrar, ya me funciona.
Eso si, las div deben estar dentro del td donde se visualizan. Concretamente, asi
Código:
<td colspan="2" width="100%">
<div id="rbAlumnosEmpresas" name="rbAlumnosEmpresas" style="position: relative; top: 0; left: 0">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="62" height="30" valign="middle" align="left">
<a href="#" onClick="establecerTipoLogin(this,'alumno');cambiaCapa(1); return false;" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('alumnos','','../images/alumnos_on.gif',1)">
<img name="alumnos" border="0" src="../images/alumnos_off.gif" width="52" height="9">
</a>
</td>
<td class="texto10_660000" align="center">|</td>
<td width="66" height="30" valign="middle" align="right">
<a href="#" onClick="establecerTipoLogin(this,'empresa');cambiaCapa(2); return false" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('empresas','','../images/empresas_on.gif',1)">
<img name="empresas" border="0" src="../images/empresas_off.gif" width="61" height="9">
</a>
</td>
</tr>
</table>
</div>
<div id="rbAlumnos" name="rbAlumnos" style="position: relative; top: 0; left: 0; visibility: hidden; display: none">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="100%" height="30" valign="middle" align="center">
<img name="alumnos" border="0" src="../images/alumnos_on.gif" width="52" height="9">
</td>
</tr>
</table>
</div>
<div id="rbEmpresas" name="rbEmpresas" style="position: static; top: 0; left: 0; visibility: hidden; display: none; top: 0; left: 0">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="100%" height="30" valign="middle" align="center">
<img name="alumnos" border="0" src="../images/empresas_on.gif" width="61" height="9">
</td>
</tr>
</table>
</div>
</td>
siendo una de las claves q las capas q al cargarse la página no deben verse, q la propiedad display sea none.
Lo he probado en IE6, NS7 y Mozilla.
Salu2