ASP.NET: RegisterStartupScript does not work

本文关键字:not work does RegisterStartupScript NET ASP | 更新日期: 2023-09-27 17:54:36

我试图从服务器端运行客户端脚本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没有任何变化。

:源代码coderun。

ASP.NET: RegisterStartupScript does not work

您在定义alertMe()之前调用它,位于页面末尾。

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

我建议把你的javascript块移动到页面的头部。

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

这是你修改后的代码运行,如你所愿

我建议你检查两件事

  1. Is你的js函数不在其他函数中。那么对于服务器

  2. 是不可见的
  3. 是html标签包含你的脚本有runat="server"标签

在你的例子中:

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