2012-05-06 114 views
7

這是我的腳本:警報後,頁面加載

<% 
    if (TempData["Resultat"] != null){ 
%> 
<script type="text/javascript"> 
    alert('<%: TempData["Resultat"]%>'); 
</script> 
<% 
    } 
%> 

在這種情況下彈出顯示加載頁面之前,但我想,經過頁面完全加載的出現。 在HTML中它看起來是這樣的:

<body onload="happycode() ;"> 

,但我不能在MVC中使用它,我有一個母版頁爲我所有的web應用程序

回答

9

如果你能jQuery的使用,那麼你可以把警報內功能$(document).ready()。它會是這個樣子:

<script> 
    $(document).ready(function(){ 
    alert('<%: TempData["Resultat"]%>'); 
    }); 
</script> 

要包括jQuery的,包括在你的代碼的<head>標籤以下內容:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> 

下面是的jsfiddle一個簡單的例子:http://jsfiddle.net/ChaseWest/3AaAx/

+0

另外一個問題在我警告特殊字符在ASCI代碼中顯示,如'&#39'如何解碼它? – Chlebta

+0

有沒有什麼辦法可以看到更多的代碼或者一個例子,我會盡力幫助更多。 – Chase

+0

這是我的ViewData表單示例'L'ajout de promotionàreussi',但在警報中,showin就像這樣表現出來#L ' ajout de promotion à reussi' – Chlebta

3

爲什麼能你在MVC中使用它嗎?

而不是使用body load方法使用jQuery並等待文檔onready函數完成。

+0

OP可能沒有使用MVC3作爲剃刀。 –

+0

@Valamas編輯 – user1378687

3

隨着使用jQuery來處理文檔準備事件,

<script type="text/javascript"> 

function onLoadAlert() { 
    alert('<%: TempData["Resultat"]%>'); 
} 

$(document).ready(onLoadAlert); 
</script> 

甚至更​​簡單 - 把<script>body年底,而不是在head

+0

(回覆已刪除的問題):是的,我有幾個調試會話,當'console.log()'和調試器給出不同的結果 – zerkms

13

有三種方法。
首先是把腳本標籤頁面的底部:

<body> 
<!--Body content--> 
<script type="text/javascript"> 
alert('<%: TempData["Resultat"]%>'); 
</script> 
</body> 

的第二種方法是創建一個onload事件:

<head> 
<script type="text/javascript"> 
window.onload = function(){//window.addEventListener('load',function(){...}); (for Netscape) and window.attachEvent('onload',function(){...}); (for IE and Opera) also work 
    alert('<%: TempData["Resultat"]%>'); 
} 
</script> 
</head> 

它將執行一種功能,當窗口加載。
最後,第三種方式是創建一個readystatechange事件,並檢查當前document.readystate:

<head> 
<script type="text/javascript"> 
document.onreadystatechange = function(){//window.addEventListener('readystatechange',function(){...}); (for Netscape) and window.attachEvent('onreadystatechange',function(){...}); (for IE and Opera) also work 
    if(document.readyState=='loaded' || document.readyState=='complete') 
     alert('<%: TempData["Resultat"]%>'); 
} 
</script> 
</head> 
+0

第一種方法似乎不工作。例如。我在''之前有一個腳本頁面,在頁面出現在瀏覽器窗口之前出現'alert';事實上,這個頁面在我解除'alert'之後纔會加載。 – globewalldesk

1

下面的代碼添加在PageLoad事件:

ScriptManager.RegisterStartupScript(Page, this.GetType(), "myScript", "alert('OK Done.');", true); 
2
$(window).on('load', function() { 
alert('Alert after page load'); 
     } 
    });