entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Como cerrar todas las ventanas abiertas en el navegador desde la pagina principal

Hola,

Tengo una sistema WEB hecho en java, que usa Struts2 y prototypejs para el manejo de la vista.

Al entrar al sistema pide login y hace seleccionar la base de datos a utilizar y luego utiliza el login y la DB elegida en el sistema. Si vuelve a abrir el sistema, abriendo otro navegador le recuerda el login y le abre el menú directamente.

Ahora el problema esta si cierra la sección en la segunda ventana que abrió para cambiar de base de datos, porque le cambia la configuración de la DB en ambas ventanas (por que es la misma seccion).

Por este motivo necesitaríamos cerrar todas las ventanas abiertas del sistema, en el navegador cuando cierra la sección. El navegador que usamos es el chrome.

De qué manera se puede hacer esto?

Saludos

2 Respuestas

0voto

Chiro300 Puntos750

Saludos, la verdad nunca lo e echo y creo que hasta cierto punto no es posible, ya que por motivos de seguridad sería un problema que una pagina web pueda cerrar tu navegador, pero como dije busque un poco y hay una posible solución, a lo que vi hay un evento en javascript llamado Close() o lo puedes usar como This.Close(), pero tiene una limitante solo puede cerrar ventanas abiertas mediante código de java script, ve este enlace:
http://www.w3schools.com/jsref/met_win_close.asp
Pero como te digo no creo que sea posible cerrar el navegador desde el código de una pagina web seria algo muy inseguro y no tiene lógica según el funcionamiento de este, otra solución es crear un token mediante una cookie o sesión y que esta valida las acciones de los usuarios, ya sea con un time out o algo por el estilo.

0voto

Leonardo-Tadei Puntos227320

Hola Wilson,

no es posible cerrar ventanas del navegador. Como cuenta @Chiro300, existe la función window.close() de JavaScript, pero sirve solo para cerrar popups habiertos por la página que lanza la función de cerrar, y en tu caso no parece factible.

Sin embargo, el problema que tenés es de identificadores de sesión del lado del servidor, y podría solucionarse desde ahí.

Lo que podrías hacer es generar distintas sesiones (con un sessionID diferente para cada conexión de base de datos, y luego discriminar por esta sesión para saber a qué DB hace referencia el usuario.

Tendrías que agregar el nombre de la DB en el identificador de la sesión, y luego depnediendo de la sesión generada, interpretar los datos de la sesión para devolver el menú y los datos correspondientes.

Es un trabajo un poco largo y tedioso, porque supongo que implicará modificar cada lugar en dónde estén involucradas las consultas, pero es así cómo se hace un software web multisesión.

Saludos cordiales!

0voto

Wilson comentado

Hola Leonardo,

Por lo que me comentan tienen razon, pero no me quedo claro como seria el funcionamiento generando una sessionID diferente para una web multisesión.
No tendrias un ejemplo basico para ver como funciona y entenderlo un poco mejor?

gracias

0voto

Leonardo-Tadei comentado

Hola Wilson,

una web multisesión es algo complejo, y no creo que se pueda montar un ejemplo básico...

Tenés control sobre el identificador de sesión generado desde la aplicación?
Podés generarlo programáticamente? La idea es generar uno diferente para cada conexión a la DB...

Tal vez te convenga realizar preguntas concretas a medida que te surgen las dudas, porque las preguntas muy genéricas no son fáciles de responder por un medio como este.

Saludos!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta