Controlla se la pagina viene ricaricata o aggiornata in Javascript

Voglio controllare quando qualcuno tenta di aggiornare una pagina.

Ad esempio, quando apro una pagina non succede niente ma quando aggiorno la pagina restituisce un avviso.

Un modo migliore per sapere che la pagina è effettivamente ricaricata consiste nell’utilizzare l’object navigator supportato dalla maggior parte dei browser moderni.

Utilizza l’ API di sincronizzazione di navigazione .

//check for Navigation Timing API support if (window.performance) { console.info("window.performance works fine on this browser"); } if (performance.navigation.type == 1) { console.info( "This page is reloaded" ); } else { console.info( "This page is not reloaded"); } 

Il primo passaggio consiste nel controllare sessionStorage per un valore predefinito e se esiste un utente di avviso:

 if (sessionStorage.getItem("is_reloaded")) alert('Reloaded!'); 

Il secondo passo è impostare sessionStorage su un valore (ad esempio true ):

 sessionStorage.setItem("is_reloaded", true); 

I valori di sessione vengono conservati fino a quando la pagina non viene chiusa, quindi funzionerà solo se la pagina viene ricaricata in una nuova scheda con il sito. Puoi anche tenere il conteggio della ricarica allo stesso modo.

Archivia un cookie la prima volta che qualcuno visita la pagina. All’aggiornamento controllare se il cookie esiste e se lo fa, avvisare.

 function checkFirstVisit() { if(document.cookie.indexOf('mycookie')==-1) { // cookie doesn't exist, create it now document.cookie = 'mycookie=1'; } else { // not first visit, so alert alert('You refreshed!'); } } 

e nel tag del tuo corpo:

  

Ho trovato qui alcune informazioni Javascript Rilevamento della pagina di aggiornamento . La sua prima raccomandazione è usare i campi nascosti, che tendono ad essere memorizzati attraverso gli aggiornamenti delle pagine.

 function checkRefresh() { if (document.refreshForm.visited.value == "") { // This is a fresh page load document.refreshForm.visited.value = "1"; // You may want to add code here special for // fresh page loads } else { // This is a page refresh // Insert code here representing what to do on // a refresh } } 
   

Se

 event.currentTarget.performance.navigation.type 

ritorna

0 => utente ha appena scritto un URL
1 => pagina ricaricata
2 => pulsante indietro cliccato.

Ho trovato qui alcune informazioni Javascript Rilevamento della pagina di aggiornamento

 function UnLoadWindow() { return 'We strongly recommends NOT closing this window yet.' } window.onbeforeunload = UnLoadWindow; 

Se vuoi anche rilevare se l’utente fa clic sulla X in alto a destra del browser:

 function handleWindowClose() { if((window.event.clientX<0) || (window.event.clientY<0)) { event.returnValue = "If you have made any changes to the fields without clicking the Save button, your changes will be lost."; } }