2013-08-01 121 views
7

我想讓頁面重新加載後的警告框,但它不起作用。
請更正我的代碼並告訴我爲什麼?如何在JavaScript中重新加載頁面後顯示提醒?

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

想想看,當你頁面重新加載,它不會自動記憶前一頁的狀態。當你的頁面重新加載完成後,它會綁定一個點擊事件,直到有人點擊你的按鈕。 –

+0

當你重新加載時,你刷新整個頁面,它不會有回調 –

+0

我更正確地更新了我的答案 – suhailvs

回答

9

您可以使用sessionStorage

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

嗨,我修復了一些格式。在未來,如果你願意用'sms'這個詞來代表'你',而不是'u',那麼這將是非常棒的。對讀者來說更容易 - 謝謝你的貢獻。 –

+0

@BenjaminGruenbaum。謝謝。請記住這一點。 :) –

+2

嘿,我只是注意到,這段代碼不起作用。 'if(sessionStorage.reloadAfterPageLoad)'將始終執行。有關詳細信息,請參閱http://stackoverflow.com/questions/39127730/jquery-if-condition-is-false-but-still-executed/39127785。 – Adam

1

這就是所謂的onload。在DOM準備好了之前,它已經成爲了waaaaay,DOM準備實際上是爲了onload等待圖像而創建的。

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

而jQuery Javascript解決方案是綁定document.ready()中的window.onload事件。

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

頁面刷新後會工作嗎? – Kobi

+0

我認爲喲是的 –

+0

@MichaelUnterthurner它會不會在最初的工作?它不會顯示消息_first_用戶進入頁面的時間? –

0

PHP中?reload字符串做在鏈接href的request.GET的一些骯髒的方法

<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

您確定檢查文件是否被重新加載,而不僅僅是文件加載? –

+0

@BenjaminGruenbaum現在它會起作用 – suhailvs

0

第1步:寫你自己的功能彈出ok提示按鈕(我已經創建了接受消息,提示類型,方法名稱的參數化函數)

功能AlertMessageOk(STR,警告類型,方法)
{

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

步驟2:在你的Ajax response.result ==真調用AlertMessageOk功能。我已經通過方法名稱來重新加載頁面。

功能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();   
} 
相關問題