2013-08-01 12 views
7

Ich versuche, Alarm-Box nach Seite neu geladen, aber es funktioniert nicht.
Bitte korrigieren Sie meinen Code und sagen Sie mir warum?Wie zeige ich eine Warnung an, nachdem ich die Seite in JavaScript neu geladen habe?

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

Bedenken Sie, dass, wenn Sie Seite sind neu geladen wird, wird es nicht automatisch den Zustand der vorherigen Seite erinnern würde. Wenn Ihre Seite neu geladen wird, wird nur ein Klick-Ereignis gebunden und nichts getan, bis jemand auf Ihre Schaltfläche klickt. –

+0

Wenn Sie neu laden, aktualisieren Sie die ganze Seite, es wird keinen Rückruf haben –

+0

Ich aktualisierte meine Antwort in korrekter Weise – suhailvs

Antwort

9

können Sie sessionStorage verwenden:

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

Hallo, ich habe ein paar Formatierungen für dich repariert. In Zukunft wäre es toll, wenn Sie ganze Wörter über "SMS sprechen" bevorzugen - zum Beispiel "Sie" über "Sie". Es ist einfacher für die Leser - danke und danke für deinen Beitrag. –

+0

@BenjaminGruenbaum. Vielen Dank. Behalte dies im Hinterkopf. :) –

+2

Hey ich habe gerade gemerkt, dass dieser Code nicht funktioniert. 'if (sessionStorage.reloadAfterPageLoad)' wird immer ausgeführt. Weitere Informationen finden Sie unter http://stackoverflow.com/questions/39127730/jquery-if-condition-is-false-but-still-executed/39127785. – Adam

1

Das wird Onload genannt. Es kam waaaaay bevor DOM ready war, und DOM ready wurde eigentlich genau aus dem Grund erstellt, dass onload auf Bilder gewartet hat.

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

Und eine jQuery-Javascript-Lösung soll das window.onload-Ereignis in document.ready() binden.

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

Wird das nach einer Seitenaktualisierung funktionieren? – Kobi

+0

Ich denke so ja ja –

+0

@MichaelUnterthurner Wird es nicht auf die anfängliche gehen? Wird die Nachricht nicht zum ersten Mal angezeigt, wenn der Benutzer die Seite öffnet? –

0

Einige schmutzige Methode davon mit ?reload Zeichenfolge in link href wie request.GET in PHP zu tun

<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

Sind Sie sicher, dass das Dokument erneut geladen wird und nicht nur das Dokument geladen wird? –

+0

@BenjaminGruenbaum jetzt wird es funktionieren – suhailvs

0

Schritt 1: Ihre eigene Funktion schreiben für Alarm-Popup mit OK-Taste (ich habe parametrisierte Funktion erstellt, die Nachricht, Alarmtyp, Methodenname akzeptiert.

Funktion AlertMessageOk (str, alertType, Methode)
{

 $('#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'); 
} 

Schritt 2: Auf Ihrem Ajax response.result == true Aufruf AlertMessageOk Funktion. Ich habe Methodenname übergeben, um die Seite neu zu laden.

Funktion 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();   
} 
Verwandte Themen