web-dev-qa-db-fra.com

Alerte après le chargement de la page

Voici mon script:

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

Dans ce cas, une fenêtre contextuelle s'affiche avant le chargement de la page, mais je souhaite qu'elle s'affiche une fois la page entièrement chargée. en Html, cela ressemble à ceci:

<body onload="happycode() ;">

mais je ne peux pas l'utiliser dans MVC j'ai une page maître pour toute mon application web

11
Chlebta

Si vous pouvez utiliser jquery, vous pouvez placer l'alerte dans la fonction $(document).ready(). cela ressemblerait à quelque chose comme ceci:

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

Pour inclure jQuery, incluez les éléments suivants dans le <head> tag de votre code:

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

Voici un exemple rapide dans jsFiddle: http://jsfiddle.net/ChaseWest/3AaAx/

13
Chase

Il y a trois façons.
La première consiste à placer la balise de script au bas de la page:

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

La deuxième façon consiste à créer un événement 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>

Il exécutera une fonction lors du chargement de la fenêtre.
Enfin, la troisième méthode consiste à créer un événement readystatechange et à vérifier le document.readystate actuel:

<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>
15
Danilo Valente

Pourquoi ne pouvez-vous pas l'utiliser dans MVC?

Plutôt que d'utiliser la méthode de chargement du corps, utilisez jQuery et attendez la fin de la fonction de document.

3
user1378687

Avec l'utilisation de jQuery pour gérer l'événement prêt pour le document,

<script type="text/javascript">

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

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

Ou, encore plus simple - mettez le <script> à la fin de body, pas dans le head.

3
Imp
$(window).on('load', function () {
 alert('Alert after page load');
        }
    });
2
user1667495

Ajoutez le code ci-dessous dans l'événement PageLoad:

ScriptManager.RegisterStartupScript(Page, this.GetType(), "myScript", "alert('OK Done.');", true);
1
Subhash