Una pequeña prueba de concepto, de utilidad en ventanas emergentes recicladas.
Es sencillo, pero hasta ahora no se me había ocurrido utilizarlo. Es el caso de una ventana emergente abierta mediante el método window.open. Es más fácil situarse con un ejemplo. Supongamos que disponemos de una página llena de fotos reducidas y que se desea mostrar una foto ampliada en una ventana emergente. Si no se desea crear el caos y poblar la pantalla del usuario de ventanitas, abriendo una nueva ventana emergente cada vez que se amplía una foto, basta con llamar a la ventana hija siempre por el mismo nombre.
El problema, entonces, radica en que, si ya está abierta, la ventana no emerge (porque no obtiene el foco), quedando en segundo plano y confundiendo al usuario. Ahora bien, puede incluirse una instrucción para que el método de apertura lleve el foco a la ventana hija (como se ve en esta otra POC). Sin embargo, esto último puede no interesar, no convenir o no ser posible (sería largo de explicar un caso práctico, pero haylo; baste decir que primaba el tiempo). En vez de gestionar el foco en la instrucción de apertura, puede realizarse en la propia página que se abre. Así:
function autofocus()
{
// autofoco de ventana
// de utilidad en ventanas emergentes recicladas
window.focus();
}
Y en la etiqueta <body>
colocar una llamada para el evento onload:
<body onload="autofocus();">
El efecto puede variar si, por ejemplo, se coloca la llamada al foco en un evento onload
para la imagen (por ejemplo), o se invoca, igualmente, al cambiar la URL de la ventana:
<body onload="autofocus();" onunload="autofocus()">
Las combinaciones son múltiples e interesantes.
Véase también la nota "Comunicación entre ventanas con Javascript" y la categoría codeblog en general para otras chucherías modestas pero útiles, no obstante.
Tengo un problemita con el focus en mozilla,
tengo un chat la idea es que ese chat cuando llegue algun mensaje y si la ventana que lo contiene esta minimizada automaticamente la ventana empieze a parpadear o se muestre de inmediato, pero no lo consigo con mozilla en internet explorer si se hace y la funcion es muy sencilla
cuando el applet recibe un mensaje este invoca un metodo javacript de la pagina que executa este codigo
window.focus();
agardeceria colaboracion o si saben de alguna otra forma de hacer que lo que estoy intentando
Una página colectiva y ecléctica para comentar y apuntar cosas.
Estás viendo los archivos de Enero de 2006. Visita la portada para ver las últimas notas.
Si quieres curiosear, puedes consultar:
http://tira.escomposlinux.org
La tira ecol ha vuelto.