JavaScript - ¿Cómo cerrar ventanas?

 
Vista:

¿Cómo cerrar ventanas?

Publicado por Quique (7 intervenciones) el 09/11/2022 20:12:58
Hola, tengo una página desde la cual puedo refrescarla, cambiar de página, abrir nuevas y trabajar de manera similar a la primera, en el servidor llevo un control de las páginas que deberían estar abiertas si el usuario no las cerró desde la cruz de cerrar. Cada vez que cargo alguna ventana hago un

window.name='nombre';

donde nombre cambia de acuerdo al control que llevo en el servidor. Todas las páginas que abro, a excepción de la primera página, son a travez de un formulario

method="POST"
target="nombre"

donde el nombre es el mismo que tendrá la nueva página en

window.name='nombre';

¿como puedo cerrar alguna de las páginas abiertas?

si le doy nombre.colse() marca que nombre no está definido.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Ivan

¿Cómo cerrar ventanas?

Publicado por Ivan (118 intervenciones) el 10/11/2022 09:32:37
Hola,

en tu explicación no dices si al cargar las nuevas páginas lo haces en un nuevo objeto o simplemente reemplazas la página actual en el objeto window.

En cualquier caso un método que funciona es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
  <p>Abrir y Cerrar ventanas JavaScript</p>
  <script>
    newWindowObj = window.open("URL", "WindowName", "toolbar=0, menubar=1, innerHeight=200, innerWidth=300");
    window.newWindowObj.close();
    console.log(window);
    alert('pausa');
    delete window.newWindowObj;
    console.log(window);
  </script>
</body>
</html>

Observa que en la pausa se cierra la ventana pero el objeto sigue existiendo, para eliminarlo por completo usamos delete.

Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿Cómo cerrar ventanas?

Publicado por Quique (7 intervenciones) el 10/11/2022 16:57:34
Hola, no uso objetos, por eso no lo puse. Tengo algo parecido a esto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<form action="127.0.0.1" method="POST" id="qs_fm" onsubmit="return false;" name="qs_ref">
   <input type="hidden" name="r" value="">
   <input type="hidden" name="d">
   <input type="hidden" name="e">
</form>
 
<script>
function qs_ref(r,d,e){
   qs_ref.r.value=r;
   qs_ref.d.value=d;
   qs_ref.e.value=e;
   if(qs_ref.target=="")document.body.onunload=null;
   if(qs_ref.target==""||qs_ref.target=="_qs_iframe2")this.esperas++;
   qs_ref.submit();
</scritp>

En ocaciones cambio la página sobre la misma ventana, en ocaciones la abro en una ventana nueva, y en ocaciones en un iframe.

Ahora bien, solo tengo conocimientos básicos, tanto de html, como de javascript, pero hasta donde entiendo, cuando cargo una nueva página, todas las variables se borran, eso quiere decir que aunque abriera la segunda ventana con window.open, perdería el objeto al cambiar la página en la primera ventana.

Todas las páginas al cargar traen scripts con instrucciones, la idea sería que de ser necesario se cerrara la segunda ventana, aunque podría tener una tercera o más, tal vez quiero cerrar la segunda, o tal vez la tercera. No se si me explico, pero esa es la idea de lo que necesito.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿Cómo cerrar ventanas?

Publicado por Enrique Guerra (7 intervenciones) el 10/11/2022 17:02:25
Perdón, fe de erratas. En el código que puse, me faltó la llave para cerrar la función (}), y el this es porque realmente no es una función sino un método de una clase.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar