Foros del Web » Programación para mayores de 30 ;) » Java »

un script entre java..

Estas en el tema de un script entre java.. en el foro de Java en Foros del Web. 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>");%> lo he intentado pero no me ...
  #1 (permalink)  
Antiguo 02/09/2006, 10:41
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
Pregunta 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>");%> 
lo he intentado pero no me resulta y es necesario que sea de esa forma...Si alguien puede ayudarme se lo agradeceria muchisimo!
  #2 (permalink)  
Antiguo 03/09/2006, 08:14
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
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
  #3 (permalink)  
Antiguo 03/09/2006, 17:27
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
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.
  #4 (permalink)  
Antiguo 04/09/2006, 00:26
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
De todas formas, un window.close() solo funciona para las ventanas que han sido abiertas con un window.open(). Quiza no sea eso, pero conviene tenerlo en cuenta.
  #5 (permalink)  
Antiguo 06/09/2006, 08:55
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
mmm GreenEyed, enotnces de que forma puedo cerrar una ventana que no fue avierta con un window.close()?
  #6 (permalink)  
Antiguo 06/09/2006, 11:48
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
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 .
  #7 (permalink)  
Antiguo 06/09/2006, 18:56
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
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....
  #8 (permalink)  
Antiguo 07/09/2006, 06:30
Avatar de Tipdar  
Fecha de Ingreso: octubre-2005
Ubicación: Aquí y allá.
Mensajes: 323
Antigüedad: 18 años, 6 meses
Puntos: 7
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:

Código:
<% if (request.getAttribute("cerrarYa") != null) { %>
   <script language="javascript">
       var father = window.self; 
       father.opener = window.self; 
       father.close(); 
   </script>
<% } %>
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.
__________________
El último TipdaR
  #9 (permalink)  
Antiguo 07/09/2006, 10:42
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
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?
  #10 (permalink)  
Antiguo 07/09/2006, 10:53
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Pregunta

Cita:
Iniciado por Tipdar Ver Mensaje
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.
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:
Código:
Los scripts no pueden cerrar ventanas que no hayan sido abiertas por un script.
  #11 (permalink)  
Antiguo 07/09/2006, 10:56
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Cita:
Iniciado por zyon Ver Mensaje
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?
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.
  #12 (permalink)  
Antiguo 07/09/2006, 11:13
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
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...
  #13 (permalink)  
Antiguo 07/09/2006, 21:07
Avatar de Tipdar  
Fecha de Ingreso: octubre-2005
Ubicación: Aquí y allá.
Mensajes: 323
Antigüedad: 18 años, 6 meses
Puntos: 7
Cita:
Iniciado por GreenEyed Ver Mensaje
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:
Código:
Los scripts no pueden cerrar ventanas que no hayan sido abiertas por un script.
Espera que estamos hablando de un código en JS para IE, en otros browsers con window.close() bastaría.

Por ejemplo:

Código:
<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 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.
__________________
El último TipdaR
  #14 (permalink)  
Antiguo 08/09/2006, 05:47
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Cita:
Iniciado por Tipdar Ver Mensaje
Espera que estamos hablando de un código en JS para IE, en otros browsers con window.close() bastaría.
Repito: Para navegadores no-IE no funciona .

Cita:
Iniciado por Tipdar Ver Mensaje
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.
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 .
  #15 (permalink)  
Antiguo 08/09/2006, 06:35
Avatar de Tipdar  
Fecha de Ingreso: octubre-2005
Ubicación: Aquí y allá.
Mensajes: 323
Antigüedad: 18 años, 6 meses
Puntos: 7
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
  #16 (permalink)  
Antiguo 08/09/2006, 09:23
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
jaja, me encanta este foro, aunque aveces no entiendo ni la mitad de lo que dicen, espero un dia volverme como ustedes que saben de todo un poco, yo no salgo de IE...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:55.