2012-05-06 22 views
7

To jest mój skrypt:Alert po stronie obciążenia

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

W tym przypadku pop-up jest wyświetlany przed strona załadowany, ale chcę to pojawia się po stronie jest w pełni załadowany. w HTML To wygląda następująco:

<body onload="happycode() ;"> 

ale nie można go używać w MVC Mam jedną stronę wzorcową dla całej mojej aplikacji internetowej

Odpowiedz

9

Jeśli można użyć jQuery następnie można umieścić alert wewnątrz funkcja $(document).ready(). to będzie wyglądać mniej więcej tak:

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

Aby dołączyć jQuery, obejmują następujące w <head> tagu kodzie:

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

Oto krótki przykład w jsFiddle: http://jsfiddle.net/ChaseWest/3AaAx/

+0

kolejne pytanie w moim alert special caracter są wyświetlane w kodzie ASCI, jak '' '' jak to rozszyfrować? – Chlebta

+0

Czy jest jakiś sposób, bym mógł zobaczyć więcej kodu lub może przykład, a ja postaram się pomóc. – Chase

+0

To jest mój przykład formularza ViewData 'L'ajout de promotion à reussi' ale w alarmie string showin jest taki jak ten pokazany w ten sposób' L ' ajout de promotion à reussi' – Chlebta

3

dlaczego używasz go w MVC?

Zamiast używać metody ładowania ciał, należy użyć jQuery i poczekać, aż dokument zostanie uruchomiony.

+0

OP nie może używać MVC3 do maszynki do golenia . –

+0

@Valamas edytowane – user1378687

3

Przy użyciu jQuery do obsługi dokument gotowy zdarzenie,

<script type="text/javascript"> 

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

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

Albo jeszcze prościej - umieścić <script> na koniec body, a nie w head.

+0

(odpowiedź na usunięte pytanie): tak, miałem kilka sesji debugowania, kiedy 'console.log()' i debugger dały inne wyniki – zerkms

13

Istnieją trzy sposoby.
Pierwszym jest umieścić tag skryptu na dole strony:

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

Drugim sposobem jest stworzenie zdarzenia 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> 

To będzie wykonywał funkcję po załadowaniu okna .
Wreszcie trzecim sposobem jest stworzenie wydarzenia readystatechange i sprawdzić aktualny 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

Pierwsza metoda nie działa. Na przykład. Mam stronę ze skryptem tuż przed '' i 'alert' pojawia się zanim strona pojawi się w oknie przeglądarki; w rzeczywistości strona nie ładuje się, dopóki nie zwolnię "alertu". – globewalldesk

1

Dodaj poniższy kod w PageLoad wydarzenie:

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