2013-08-01 6 views
7

Sto tentando di rendere l'avviso box dopo pagina ricaricato, ma non funziona.
Si prega di correggere il mio codice e dimmi perché?Come mostrare un avviso dopo aver ricaricato la pagina in JavaScript?

$("button").click(function(){ 
    window.location.reload(); 
    alert("Hello world"); 
}); 
+4

consideri che quando sei pagina viene ricaricata, non sta andando a ricordare automaticamente lo stato della pagina precedente. Quando la tua pagina ricarica tutto ciò che sta per fare è associare un evento click e non fare nulla finché qualcuno non fa clic sul tuo pulsante. –

+0

Quando si ricarica, si sta aggiornando l'intera pagina, non si avrà una richiamata –

+0

ho aggiornato la mia risposta in modo più corretto – suhailvs

risposta

9

È possibile utilizzare sessionStorage:

$("button").click(function() { 
    sessionStorage.reloadAfterPageLoad = true; 
    window.location.reload(); 
}); 
$(function() { 
    if (sessionStorage.reloadAfterPageLoad) { 
     alert("Hello world"); 
     sessionStorage.reloadAfterPageLoad = false; 
    } 
}) 
+1

Ciao, ho corretto alcune formattazioni per te. In futuro sarebbe bello se tu potessi preferire parole complete su 'sms speak' - per esempio "tu" su "u". È più facile per i lettori - grazie e grazie per il tuo contributo. –

+0

@BenjaminGruenbaum. Grazie. Lo terrò a mente. :) –

+2

Ehi, ho appena notato che questo codice non funziona. 'if (sessionStorage.reloadAfterPageLoad)' sarà sempre eseguito. Vedi http://stackoverflow.com/questions/39127730/jquery-if-condition-is-false-but-still-executed/39127785 per i dettagli. – Adam

1

Si chiama onload. È venuto prima che il DOM ready fosse in giro, e DOM ready è stato effettivamente creato per l'esatto motivo per cui onload era in attesa sulle immagini.

window.onload = function() { 
    alert("It's loaded!"); 
    //dom not only ready, but everything is loaded 
} 

E una soluzione jQuery Javascript è quello di legare l'evento window.onload in document.ready().

$(window).bind("load", function() { 
    // code here 
}); 
+0

Funzionerà dopo l'aggiornamento della pagina? – Kobi

+0

Penso di sì sì –

+0

@MichaelUnterthurner Non funzionerà sul primo go? Non mostrerà il messaggio la prima volta che l'utente inserisce la pagina? –

0

Alcuni metodo sporco di farlo con ?reload stringa nel link href come request.GET in php

<a class="button" href="?reload/">reload and alert</a> 
<script type="text/javascript">   
    args = location.search.substr(1); 
    if (args=='reload/')alert('page reloaded'); 
</script> 
+1

Sei sicuro che i documenti per il ricaricamento dei documenti vengano caricati e non solo il documento caricato? –

+0

@BenjaminGruenbaum ora funzionerà – suhailvs

0

Fase 1: scrivere la propria funzione per popup di avviso con il pulsante ok (ho creato la funzione parametrizzata che accetta il messaggio, il tipo di avviso, il nome del metodo.

funzione AlertMessageOk (str, alertType, metodo)
{

 $('#AlertMessage .divDialogElements').empty(); 

    $('#AlertMessage .divDialogElements').append(msg); 

    if (alertType == "success") { 
     $('#AlertMessage #modalAlertHeaderTitle').html("Success"); 
     $('#AlertMessage #modalAlertHeaderTypeClass').attr("class", "modal-header alert-success"); 
    } 
    else if (alertType == "error") { 
     $('#AlertMessage #modalAlertHeaderTitle').html("Error"); 
     $('#AlertMessage #modalAlertHeaderTypeClass').attr("class", "modal-header alert-danger"); 
    } 
    else if (alertType == "info") { 
     $('#AlertMessage #modalAlertHeaderTitle').html("Status"); 
     $('#AlertMessage #modalAlertHeaderTypeClass').attr("class", "modal-header alert-info"); 
    } 
    else if (alertType == "warning") { 
     $('#AlertMessage #modalAlertHeaderTitle').html("Warning"); 
     $('#AlertMessage #modalAlertHeaderTypeClass').attr("class", "modal-header alert-warning"); 
    } 

    $('#AlertMessage #btnAlertOk').attr("onclick", method); 

    $('#AlertMessage').modal('show'); 
} 

Fase 2: Sul tuo ajax response.result == true chiamata alla funzione di AlertMessageOk. Ho passato il nome del metodo per ricaricare la pagina.

funzione buttonActivate_onClick (storeID) {

 $.ajax({ 
     type: "POST", 
     url: "/configuration/activateStore", 
     timeout: 180000, 
     data: { StoreID: storeID }, 
     success: function (response) { 
      if (response.result == true) { 
       AlertMessageOk("Store configuration for Store ID " + storeID + " is successfully activated.", "success", "reloadPage();"); 
      } 
     }, 
     error: function (xhr, textstatus) { 
      AlertMessage("Error: " + xhr.statusText + " [" + xhr.status + "]", "error"); 

     } 
    }); 
    $('#wait_load').css("display", "none"); 
} 


function reloadPage() { 
    location.reload();   
} 
Problemi correlati