如何从Asp. js调用JavaScript函数?Net代码背后

本文关键字:函数 Net 代码 背后 JavaScript 调用 Asp js | 更新日期: 2023-09-27 18:12:03

这是我的JavaScript函数

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

这是ASP。. NET代码:

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

达到RegisterStartupScript函数,这是肯定的。但它不会触发我的JavaScript函数。第二个参数,应该是"起始脚本的键"是的,但是我应该在这里放什么呢?

如何从Asp. js调用JavaScript函数?Net代码背后

默认情况下,脚本被写入输出,但不包含<script>标记。如果您正在使用浏览器的JavaScript控制台或在客户机上查看生成的HTML,您可能会注意到这一点。请务必熟悉这些工具。

你可以让它用稍微不同的方法重载为你添加脚本标签。

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

或者你也可以自己添加:

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

键字符串和控件注册时使用的类型的组合用于唯一标识已注册的脚本,以防您以后想要注销它或用不同的脚本替换它。键不必是特定的,只要是唯一的

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

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

你应该试试这个:

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);

根据MSDN使用这个过载,你必须在<script></script>标签中包装你的调用,所以你会这样做:

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

或使用另一个重载

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