1

我正在尝试在Page_Load上从服务器端运行客户端脚本,我从这里找到了这段代码。这是服务器端代码:

protected void Page_Load(object sender, EventArgs e)
{
    if (!ClientScript.IsStartupScriptRegistered("alert"))
    {
        Page.ClientScript.RegisterStartupScript(this.GetType(),
            "alert", "alertMe();", true);
    }
}

它是客户端代码:

<script type="text/javascript">
    function alertMe() {
        alert('Hello');
    }
</script>

但是Page_Load没有任何反应。

更新:源代码代码运行

4

2 回答 2

2

alertMe()在页面末尾定义之前调用您的。

在 asp.net 中注册的所有脚本都呈现在 form 标记中。

我建议将您的 javascript 块移动到页面的头部。

<head runat="server">
  <script type="text/javascript">
    function alertMe() {
      alert('Hello');
    }
  </script>
</head>

这是您修改后的代码运行,可以按您的预期运行。

于 2013-01-19T08:28:01.803 回答
0

我建议你检查两件事

  1. 是您的js函数不在其他函数中。然后它对服务器不可见

  2. 包含您的脚本的html标签是否有runat="server"标签。

在你的情况下:

<head runat="server">
    <script type="text/javascript">
        function alertMe() {
            alert('Hello');
        }
    </script>
</head>
于 2013-01-19T08:15:04.610 回答