Formularios

Tengo un formulario en una página y cuando pulso en un botón de este me voy a otra página que abre tres frames. Necesito recoger en la siguiente página (la de los frames) la información de un campo del formulario de la primera página pero con JavaScript (nada de ASP...).
¿De qué manera lo puedo hacer?
Estoy probando con esto:
window.parent.document.forms[0].distribuidor.value
Pero no me lo coje, incluso esto:
parent.document.location.href
No me da el nombre de la primera página sino de la página que abre los 3 frames (y esa sentencia javascript la tengo en un fichero .js en esa página).
¿Cómo puedo hacer referencia al nombre de la página anterior y más aun a los datos de su formulario? Con parent todo apunta a la segunda página que abre los tres frames.
¿Se puede hacer?

1 respuesta

Respuesta
1
Si se puede hacer, siempre y cuando la padre la mantengas abierta, seria así...
window.opener.document.forms[0].distribuidor.value
Ten en cuenta que PARENT es la ventana padre de un grupo de FRAMES y OPENER sirve para referenciar la ventana que abre otra, pruébalo y me cuentas... en lugar de Forms[0] puedes usar el NOMBRE del formulario de la padre si lo sabes
Vaya parece que te he preguntado dos veces por lo mismo :)
Sin embargo esta vez no me va y ahora que lo dices debería de ser así.
He puesto esto para probar por lo menos si el nombre de la primera salia bien:
alert(window.opener.document.location.href);
Me da el error: window.opener.document no es un objeto
No lo estoy abriendo en ventanas diferentes, quiero decir que es la misma ventana del navegador y no una nueva ¿eso tiene que ver?
Espero impaciente.
Al ser la misma ventana en cuanto abres una nueva pierdes la anterior, tienes varias opciones;
1. Usar ventanas independientes.
2. Usar alguna propiedad de la ventana o un frame auxiliar para guardar el dato que te interese (el window. Name suele ser muy útil).
Dime algo más.
He probado a abrirla en una ventana nueva y sigue apareciendo el mismo error, yo creo que se liá con tanto frame. Te voy a poner el código a ver si te es de más ayuda.
Primera página: (principal.htm)
----------------
<body>
<form name=kk action="index.html" method="POST">
<input type=hidden name=distribuidor value="alicia">
<a href="index.html" target="_blank">Abreme</a>
</form>
</body>
</html>
Segunda pagina: (index.html)
-----------------
<title>kk</title>
<script src='distribuidor.js'>
</script>
<head>
<frameset cols='26%,*' framespacing='0' frameborder='0' border=0>
<frame name='menu' src='menu.htm' marginwidth='0' marginheight='10' scrolling='auto' frameborder='no'>
<frameset rows=' *,20%' framespacing='0' frameborder='0' border=0>
<frame name='pantalla' src='main.htm' marginwidth='0' marginheight='10' scrolling='auto' frameborder='no'>
<frame name='cesta' src='cesta.htm' marginwidth='0' marginheight='0' scrolling='auto' frameborder='no'>
</frameset>
</frameset>
</html>
Fichero distribuidor.js
----------------------
alert(window.opener.document.location.href);
¿Alguna sugerencia?
Que esa propiedad de Herencia solo se consigue con aperturas en JAVASCRIPT... usando algo asi;
<html>
<head>
<script>
function abrir()
{
window.open("index.html");
}
</script>
</head>
<body>
<form name=kk action="index.html" method="POST">
<input type=hidden name=distribuidor value="alicia">
<button onclick="javascript:abrir()">Abreme</button>
</form>
</body>
</html>
En la primera pantalla, funciona perfectamentes.
Dime algo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas