Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

182
Views
cómo comprobar si el formulario se ha actualizado/recargado/cerrado en js

Sé que esta pregunta se hizo antes, pero no puedo hacer que esto funcione.

Tengo un .aspx que contiene una función en la etiqueta del cuerpo onunload. Esto debería actualizar la página principal después de cerrar la página secundaria.

En este punto, necesito saber si la página se actualizó/recargó, porque esta lógica activará la llamada de función cada vez y cerrará mi página "secundaria".

Este es mi código:

 <script type="text/javascript"> function refreshparent(){ window.opener.location.reload(true); window.close(); } </script>

Y esto es lo que quiero hacer:

 <script type="text/javascript"> function refreshparent(){ if(page.wasclosed){ window.opener.location.reload(true); window.close(); }else{ //do nothing } } </script>

esta es una parte de mi aspx:

 <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body style="background-color: #d6eceb" onunload="refreshparent()">
about 4 years ago · Santiago Gelvez
1 answers
Answer question

0

Una forma de comunicarse entre varias pestañas o ventanas (que tienen algún origen, por ejemplo, https://yourdomain.com/ ) es con la API de canal de difusión . Con él, puede abrir comunicaciones entre las pestañas y enviar datos de un lado a otro.

Esto podría ser útil en su caso para que la página secundaria le diga a la ventana principal que se va a cerrar. Use el evento beforeunload para desencadenar el envío de un mensaje antes de que se cierre la ventana secundaria.

Aplique los siguientes scripts a sus respectivos archivos.

Script para su ventana principal.

Este script abre un canal de transmisión y escucha los mensajes entrantes. Siempre que el mensaje sea una cadena igual a 'refresh' , la página se recargará.

 <script type="text/javascript"> const channelName = 'form-closing-channel'; const channel = new BroadcastChannel(channelName); channel.addEventListener('message', ({ data }) => { if (data === 'refresh') { window.location.reload(); } }); </script>

Guión para la ventana de su hijo .

Este script solo envía un mensaje a otras ventanas principales abiertas justo antes de que se cierre. El mensaje que se envía será 'refresh' , lo que debería activar la recarga en el padre.

 <script type="text/javascript"> const channelName = 'form-closing-channel'; const channel = new BroadcastChannel(channelName); window.addEventListener('beforeunload', () => { channel.postMessage('refresh'); }); </script>

Importante
Tenga en cuenta que todas las ventanas principales responderán al mensaje recibido. Por ejemplo, tiene 3 ventanas principales abiertas y 1 ventana secundaria abierta, cerrar la ventana secundaria enviará 'refresh' a todas las ventanas principales y todas se recargarán.

about 4 years ago · Santiago Gelvez Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!