Foco, ventana con formulario

Al abrir una ventana nueva, quiero que esta ventana quede en primer plano, el problema es que esta ventana tiene un formulario y con internet explorer, si pongo siempre el foco en la ventana, no puedo escribir en los campos de texto
Por favor, ¿tienen alguna idea?

1 respuesta

Respuesta
1
¿Quieres qué esa ventana tenga siempre el foco? ¿Es decir que siempre este en primer plano?
Pero a la vez que se pueda rellenar un formulario... creo que entiendo el problema...
Si SOLO vas a usarlo con explorer lo que necesitas es un modalDialog.
Este tipo de ventanas hace exactamente lo que necesitas, pero solo va a funcionar en explorer.
Para el resto de los navegadores es un poco más complejo.
Lo que puedes hacer es abrir la ventana y en la ventana padre pones una función por la que si la padre tiene el foco y la hija esta abierta, se pase el foco a la hija.
Así, puedes rellenar el formulario, pero si intentas ir a la padre, te devuelve a la hija.
¿Cómo lo ves?
Hola, muchas gracias :DD
Pues si, necesito que funcione correctamente con explorer i firefox, me podrías facilitar un ejemplo del código, es que soy un poco novata con el mundo javascript. Muchas gracies esto es justamente lo que necesito.
Gracias
Marta
Pues veamos, para la ventana padre seria algo así:
Donde abras la ventana con window. Open, guarda una referencia a la ventana hija:
var hija = window.open(...);
en el body del padre pones:
onfocus="comprobar()"
y la funcion seria algo como:
function comprobar(){
if (hija != null && !hija.isClosed())
hija.focus()
}
Creo que con algo así debería hacer lo que quieres, pero te lo digo de cabeza y sin probar :D
Para explorer echa un vistazo al showmodaldialog de:
http://www.elguruprogramador.com.ar/tutoriales/tutorial_js2.asp
A mi esto me funciona:
Padre:
<html>
<head>
<script>
var hija = window.open('hija.htm','','');
function comprobar(){
if (!hija.isClosed){
hija.focus();
}
}
window.onfocus = comprobar
</script>
</head>
<body>
</body>
</html>
La hija puede ser lo que sea.
Esto hace que cuando la padre tenga el foco se lo de a la hija...
¿Me comentas, ok?
Hola muchas gracias de nuevo...
La verdad es que no me funciona :(( por la red he encontrado el siguiente ejemplo, pr tengo el problema que en el campo de texto de la ventana "hijo" no funciona.
Ventana padre:
<input type="button" onClick="hola()" value="dddd">
function hola(){
var hija = window.open('filla.htm');
}
ventana hija:
<html>
<head>
function DaFoco() {
setTimeout("self.focus()",100)
}
</script>
</head>
<body onBlur="DaFoco()">
<form name="form1" method="post" action="">
<input type="text" name="textfield">
</form>
</body>
</html>
Con el explorer no puedo escribir nada en el campo de texto.
Un saludo y mil gracias
Marta
Muchas gracias de nuevo
En explorer me funciona más o menos bien, aunque a veces pierde el foco la ventana hija también, el problema ahora lo tengo con el firfox, que cuando cambio de venta i vuelve a la hija, no puedo escribir al campo de texto.
Muchísimas gracias
Marta
¿Exactamente qué pones en la hija? ¿Puedes ponerme el código que usas en la hija aquí?
Muchísimas gracias
Código padre:
<html>
<head>
<script>
var hija = window.open('filla.htm','','');
function comprobar(){
if (!hija.isClosed){
hija.focus();
}
}
window.onfocus = comprobar
</script>
</head>
<body onFocus=comprobar()>
</body>
</html>
Codigo hija
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body >
<form name="form1" method="get" action="">
<input name="textfield" id="textfield" type="text" value="v">
<input name="textfield2"id="textfield2" type="text" value="v">
<input name="textfield3" id="textfield3" type="text" value="de">
<input name="textfield4" id="textfield4" type="text" value="x">
</form>
</body>
</html>
Con el explorer si cambio muchas veces entre una ventana y la otra, al final se queda el foco en la padre.
Con el firefox si cambio de ventana no puedo escribir nada en los campos de texto, no sale el cursor. La primera vez si que puedo pero al cambiar ya no.
Muchas gracias
MArta
En explorer veo el problema que me dices, que parece que a veces el código falla y la verdad es que no comprendo por que lo hace a veces y otras no (?).
Lo de firefox a mi me va bien, no lo entiendo, la verdad, de modo que como no sea por la version de firefox que usas no se que decirte...
En firefox la gestión de ventanas debe de ir de otra manera, porque la instancia de "hija" que se guarda en el window. Open no le vale para acceder a la ventana... pero eso ya no es cosa de javascript, sino de lo que firefox deja que javascript haga...
Siento no poder decirte más.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas