页面加载后发出警报

Chl*_*bta 12 html javascript asp.net-mvc

这是我的脚本:

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

在这种情况下,弹出窗口会在页面加载之前显示,但我希望在页面完全加载后显示.在Html中,它看起来像这样:

<body onload="happycode() ;">
Run Code Online (Sandbox Code Playgroud)

但是我无法在MVC中使用它我为我的所有Web应用程序都有一个母版页

Dan*_*nte 15

有三种方法.
第一种是将脚本标记放在页面底部:

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

第二种方法是创建一个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>
Run Code Online (Sandbox Code Playgroud)

它将在窗口加载时执行一个函数.
最后,第三种方法是创建一个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>
Run Code Online (Sandbox Code Playgroud)


Cha*_*ase 14

如果你可以使用jquery,那么你可以将警报放在$(document).ready()函数中.它看起来像这样:

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

要包含jQuery,请在<head>代码的标记中包含以下内容:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
Run Code Online (Sandbox Code Playgroud)

这是jsFiddle中的一个简单示例:http://jsfiddle.net/ChaseWest/3AaAx/