【问题标题】:How do I call a JavaScript function from Asp.Net Code Behind?如何从 Asp.Net Code Behind 调用 JavaScript 函数?
【发布时间】:2015-12-06 19:13:03
【问题描述】:

这是我的 JavaScript 函数:

function WantToSave()
{
    alert('You should save now !');
}

这是我背后的 ASP.NET 代码:

Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "WantToSave();");

已经达到RegisterStartupScript 函数,这是肯定的。但它不会触发我的 JavaScript 函数。第二个参数应该是“启动脚本的键”,是的,但是我应该放什么?

【问题讨论】:

标签: javascript c# asp.net webforms


【解决方案1】:

默认情况下,脚本会写入输出,但没有<script> 标签。如果您使用浏览器的 JavaScript 控制台或查看客户端上生成的 HTML,您可能会注意到这一点。确保您熟悉这些工具。

您可以让它使用slightly different overload 方法为您添加脚本标签。

Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "WantToSave();", true);

或者您可以自己添加它们:

Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "<script>WantToSave();</script>");

键字符串和控件注册类型的组合用于唯一标识注册的脚本,以防您以后想取消注册或用不同的脚本替换它。因此,密钥不必是特定的,只要是独特的即可。

【讨论】:

  • 谢谢@mason,那么“MyKey”呢,我可以在那里写什么吗?为什么?
  • @AntoinePelletier 正确。键字符串和控件注册类型的组合用于唯一标识注册的脚本,以防您以后想取消注册或用不同的脚本替换它。因此,密钥不必是特定的,只要是独特的即可。
  • 谢谢@mason - 这正是我所需要的。
【解决方案2】:

您可以使用脚本管理器注册启动脚本的方法。它有一个名为 add script tags 的 bool 参数(最后一个),它为您添加脚本标签。

ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "WantToSave();",true); 

【讨论】:

  • 这很有趣!特别是对于 Guid.NewGuid() 函数,它允许我尽可能频繁地显示警报。谢谢@Jhon Paul
【解决方案3】:

根据使用此重载的 MSDN,您必须将呼叫包装在 &lt;script&gt;&lt;/script&gt; 标记中,因此您可以这样做:

Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "<script>WantToSave();</script>");

或使用其他重载

Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "WantToSave();", true);

是否添加它们取决于布尔参数。

【讨论】:

    【解决方案4】:

    你应该试试这个:

    var name = "WantToSave";
    var script = "<script>alert('You should save now !');</script>";
    Page.ClientScript.RegisterStartupScript(this.GetType(), name, script);
    

    或者您应该在调用结束时添加一个 true 参数,指定添加脚本标签。

    Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "WantToSave();",true);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-05
      • 2011-04-30
      • 1970-01-01
      相关资源
      最近更新 更多