Problema con botón desplegable

Hola la pregunta es la siguiente tengo un botón desplegable asociado a un programilla en java, pero no consigo que me habrá la página en la zona de la página de marcos que yo quiero dentro de mi web.
Te mando lo que tengo echo y si puedes me das la solución.
Gracias de antemano.un saludo desde soria..
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Pagina nueva 1</title>
<base target="_self">
</head>
<body bgcolor="#FFFFFF" text="#FFFFFF">
<form name="Brujula" method="POST" style="color: #FFFFFF">
<!-- BRUJULA -->
<script language="javascript">
function CambiaBrujula(campo){
valor = campo.selectedIndex;
if (valor != 0)
{
switch(valor)
{
case 1:
Nuevo = "http://www.elpais.es";
break;
case 2:
Nuevo = "http://www.heral.es";
break;
case 3:
Nuevo = "http://www.marca.es";
break;
case 4:
Nuevo = "http://www.el-mundo.es";
break;
}
top.location.href=intermedio; target="_self"
}
}
function Cambiatele(campo){
valor = campo.selectedIndex;
if (valor != 0)
{
switch(valor)
{
case 1:
Nuevo = "http://www.tve.es";
break;
case 2:
Nuevo = "http://www.antena3.es";
break;
case 3:
Nuevo = "http://www.telecinco.es";
break;
case 4:
Nuevo = "http://www.plus.es";
break;
}
top.location.href=Nuevo; target="intermedio"
}
}
function CambiaBrujula(campo){
valor = campo.selectedIndex;
if (valor != 0)
{
switch(valor)
{
case 1:
Nuevo = "http://www.elpais.es";
break;
case 2:
Nuevo = "http://www.heral.es";
break;
case 3:
Nuevo = "http://www.marca.es";
break;
case 4:
Nuevo = "http://www.el-mundo.es";
break;
}
top.location.href=Nuevo; target="intermedio"; src="central.htm"
}
}
</script>
<div id="divbrujula" style="position: absolute; left: 182; top: 276; z-index: 100; width: 160; height: 65">
</div>
<table width="726" height="5%" border="5">
<tr>
<td align=right width="723" height="1%">
<p align="left"><font face="Arial" size=1><select name='selbrujula' class='selectbrujula' style='width: 130px' onchange='javascript:CambiaBrujula(this);' size="1">
<option selected>Prensa</option>
<option>El Pais</option>
<option>Heraldo De Aragon</option>
<option>Marca</option>
<option>El Mundo</option>
</select>
</font><font face="Arial" size=1><select name='selbrujula' class='selectbrujula' style='width: 130px' onchange='javascript:Cambiatele(this);' size="1">
<option>TV</option>
<option>TVE 1</option>
<option>Antena 3</option>
<option>Tele 5</option>
<option>C+</option>
</select>
</font></p>
<p> </p>
</table>
</form>
</body>

1 respuesta

Respuesta
1
Espero poder ayudarte. Si no he entendido mal tienes una web estructurada con frames donde aparecen unas listas desplegables con enlaces a prensa y televisión. Lo que deseas hacer es que al seleccionar un enlace en la lista éste se cargue en un frame determinado.
Hubiera sido conveniente que me enviases el código correspondiente a la estructura de frames, pero me hago una idea de como será.
Voy a suponer que deseas cargar los contenidos en el frame llamado "intermedio". Y que las lista de enlaces están en el frame llamado "superior".
Para empezar yo eliminaría del código las variables:
target="_self"
y
target="intermedio";src="central.htm"
Que no sé muy bien para que sirven, ya que solo asignan valores a dos variables que luego no empleas, y que en ningún caso actuarán sobre los frames.
Ahora te explico un poco como funcionan los frames.
1.- Al crear una web con frames, lo que creas es un código HTML que define la estructura de los frames, donde aparecerán los nombres de cada frame (name="...") y la página que se carga en cada frame (src='...').
2.- Esa página, que define los frames es la página más alta en la estructura de los frames. Cada frame se considerará descendiente de esa página y por lo tanto estará en un nivel inferior.
3.- Para referirte a un frame determinado deberás llamarlo de acuerdo a la posición que ocupan en la estructura de frames. Me explico:
Top: hace referencia al frame más alto, es decir, a la página que creó los frames y que contiene a los mismos.
Top. Intermedio: hará referencia al frame que se encuentra en la posición más alta, y dentro de este al frame que se llama "intermedio".
4.- Por lo tanto, si deseas cargar un contenido en el frame "intermedio" desde un frame llamado "superior", deberás invocar desde el frame "superior" al frame padre seguido del frame hijo llamado "intermedio".
Es decir, deberás emplear en el frame "superior" una referencia a: top. Intermedio
Para que lo entiendas mejor, es como decirle al navegador que suba hasta el nivel más alto en la estructura de los frames y luego baje hasta el frame "intermedio". Por lo tanto en tu código deberás cambiar:
top.location.href=Nuevo; target="intermedio"; src="central.htm"
por:
top.intermedio.document.location.href=Nuevo;
y:
top.location.href=Nuevo; target="intermedio"; src="central.htm"
por:
top.intermedio.document.location.href=Nuevo;
Si esto no te funciona, elimina lo de ".document"
5.- El error que cometías con:
top.location.href=Nuevo;
Era que cargabas el contenido en el elemeento más alto de la estructura de frames, es decir, en la página que hace de contenedor de los frames.
Espero que esto te ayude. Si no es así dímelo y estudiaré el código más minuciosamente.
Muchas gracias todo perfecto la explicación a sido de los mejor.
Solo decirte que este subprograma java lo copie de una página.
Muchas gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas