Código HTML:
<%out.print("<script>window.close();</script>");%>
| |||
un script entre java.. que tal! Tengo una duda, podria ejecuatar un scriopt en un jsp de las iguiente manera: Código HTML: <%out.print("<script>window.close();</script>");%> |
| ||||
por lo visto quieres cerrar la ventana........... con JSP eso no es posible, pues JSP se ejecuta en el servidor, y la ventana le pertenece al cliente.... pero, cuando quieres cerrar la ventana?? osea, en que momento es que quieres cerrarla?? explicate un poco mas para que te pueda dar alguna recomendacion de como cerrarla con JS. have funnnnnnnnnnnnn
__________________ Curso de Angular JS - Haremos una app de principio a fin |
| |||
Entiendo tu punto del servidor y tienes razon. Lo que pasa es que al JSP al darle click a un boton llama a una funcion que le da un valor a un campo oculto y que permite ejecutar una accion especifica, el detalle esta en que dentro de la misma funcion hago que se cierre la ventana y por lo que creo que al hacerlo ahi mismo no permite al JSP ejecutar esa accion especifica y por eso requeria que al finalizar la accion especifica enseguida viniera la linea que puse al principio del tema. |
| |||
No puedes. Es una medida de seguridad para que JavaScript no pueda cerrarte el navegador por si mismo. Si no, ufff, lo que se iban a divertir molestando a la gente los inmaduros. Fastidia algunas cosas que si parecerian razonables, pero es lo que hay . |
| |||
mmm, bueno, yo he mandado abrir varias ventanas y he usado en todas el close para cerrarlas, pero ya no recuerdo si lo he hecho todas con window.open(); pero mañana checo ese detalle y hay comento a ver lo que encontre.... |
| |||
Bueno, ya vi y si abro mis ventanas con el window.open(); y TipdaR, eso del setAttribute como funcionaria? creo que en alguna ocacion lo utilise para mandar atributos de un Servlet a un JSP, me funciona igual entre JSP's? |
| |||
Cita: Pues no se como te funcionará, por que yo pongo eso en un fichero HTML simple y la respuesta me sale en la consola de JavaScript, en forma de error:
Iniciado por Tipdar zyon, mi recomendación es que si quieres mandar a cerrar la ventana desde el servidor hagas lo siguiente: - pones una variable en el request y dices: ... Eso debe cerrar cualquier ventana, no importa quien la haya abierto y no importa como haya sido abierta. El script lo tomé de las faqs del foro de javascript y lo he probado, créeme que cierra la ventana aunque no haya sido abierta por un windows.open.
Código:
Los scripts no pueden cerrar ventanas que no hayan sido abiertas por un script. |
| |||
Cita: Si abres las ventanas con window.open(), entonces la podras cerrar con window.close(), sin problemas.El request.setAttribute() sirve para comunicar datos entre servlets/jsp mientras se procesa una peticion en el servidor (y se pasan el request con forward), asi que de una JSP a la siguiente, si son diferentes peticiones, no sirve. |
| |||
Jeje, ok, es que no estaba seguro de que si habia abierto todas las ventanas con el window.open(); y ademas no estaba tan perdido en lo del setAttribute, pero gracias por confirmarmelo, algo mas es que probe lo que me dijo TipdaR pero solo que en lugar de setAttribute pues utilize un getParameter y me funciono perfectamente, solo que cuando le quise agregar otra instruccion ( window.opener.top.frmbody.location.reload() ), pues trono el script... |
| ||||
Cita: Espera que estamos hablando de un código en JS para IE, en otros browsers con window.close() bastaría.Por ejemplo:
Código:
El asunto es que si el browser es IE va a pedir confirmación, entonces se le engaña haciendole creer que el mismo es su propio padre. <script language="javascript"> var gecko = /gecko/i.test(navigator.userAgent); if (gecko == false) { var father = window.self; father.opener = window.self; father.close(); } else { window.close(); } </script>
__________________ El último TipdaR |
| |||
Cita: Repito: Para navegadores no-IE no funciona . Cita: Con el IE si funciona y se pasa la seguridad por el forro, quien lo hubiera pensado de Microsoft jejeje, pero es un comportamiento anomalo que cualquier día arreglarán, si Dios quiere, y que supongo/espero que el IE7 ya no tenga. Programar haciendo uso de este tipo de cosas no es lo más recomendable, máxime cuando es una cuestión de seguridad.PD: Que truco más bueno para cerrarle a todo el mundo el navegador si no usa un una versión con la seguridad implementada como toca, ummmm . |
| ||||
Tienes razón... Lo he probado en Firefox 1.5.0.6 y nada... pero he probado en una de las primeras versiones de Firefox y ha funcionado el windows.close(). Como dices es un agujero de seguridad que ya ha sido resuelto en muchos browsers. Mis mejores saludos!
__________________ El último TipdaR |