16

これは私のスクリプトです:

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

この場合、ポップアップはページが読み込まれる前に表示されますが、ページが完全に読み込まれた後に表示されるようにしたいと思います。HTMLでは次のようになります:

<body onload="happycode() ;">

しかし、MVCでは使用できません。すべてのWebアプリケーションに対して1つのマスターページを取得しました。

4

8 に答える 8

20

3つの方法があります。
1つ目は、ページの下部にスクリプトタグを配置することです。

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

2番目の方法は、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>

ウィンドウが読み込まれると関数を実行します。
最後に、3番目の方法は、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>
于 2012-05-06T23:27:31.693 に答える
18

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/

于 2012-05-06T22:33:54.153 に答える
3

なぜMVCで使用できないのですか?

body loadメソッドを使用するのではなく、jQueryを使用して、documentonready関数が完了するのを待ちます。

于 2012-05-06T22:34:48.520 に答える
3

jQueryを使用してドキュメント準備完了イベントを処理すると、

<script type="text/javascript">

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

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

または、さらに簡単です-をではなく、<script>の最後に配置します。bodyhead

于 2012-05-06T22:37:04.297 に答える
3

最近のブートキャンプトレーニングで遭遇したOPで説明されている問題を解決する別のオプションは、window.setTimeoutを使用して、面倒なコードをラップアラウンドすることです。私の理解では、指定された時間(この場合は500ms)の間、関数の実行が遅れ、ページが読み込まれるのに十分な時間が与えられます。したがって、たとえば:

<script type = "text/javascript">
            window.setTimeout(function(){
                alert("Hello World!");
            }, 500); 
</script>
于 2020-02-06T23:53:41.880 に答える
1

PageLoadイベントに以下のコードを追加します。

ScriptManager.RegisterStartupScript(Page, this.GetType(), "myScript", "alert('OK Done.');", true);
于 2013-06-25T12:41:14.530 に答える
1
$(window).on('load', function () {
 alert('Alert after page load');
        }
    });
于 2014-04-10T11:05:15.233 に答える
0

別のオプションは、スクリプトでdefer属性を使用することですが、これはsrc属性を持つ外部スクリプトにのみ適切です。

<script src = "exampleJsFile.js" defer> </script>
于 2020-02-16T00:37:20.487 に答える