如何从 Asp.Net 代码隐藏中调用 JavaScript 函数?
How do I call a JavaScript function from Asp.Net Code Behind?
这是我的 JavaScript 功能:
function WantToSave()
{
alert('You should save now !');
}
这是我的 ASP.NET 代码:
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "WantToSave();");
达到了RegisterStartupScript
功能,可以的。但它不会触发我的 JavaScript 功能。第二个参数,它应该是 "Key of the starting script" 是的,但我应该放在那里什么?
你应该试试这个:
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);
默认情况下,脚本被写入输出但没有 <script>
标签。如果您使用浏览器的 JavaScript 控制台或在客户端查看生成的 HTML,您可能会注意到这一点。确保您熟悉这些工具。
您可以使用 slightly different overload 方法让它为您添加脚本标签。
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "WantToSave();", true);
或者您可以自己添加:
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "<script>WantToSave();</script>");
键字符串和控件注册类型的组合用于唯一标识已注册的脚本,以防您以后想要注销它或用其他脚本替换它。所以密钥不必是任何特定的东西,只是一些独特的东西。
根据使用此重载的 MSDN,您必须将调用包装在 <script></script>
标记中,因此您可以:
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "<script>WantToSave();</script>");
或使用其他重载
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "WantToSave();", true);
这将根据布尔参数添加或不添加它们。
您可以使用脚本管理器注册启动脚本的方法。它有一个名为 add script tags 的 bool 参数(最后一个),它会为您添加脚本标签。
ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "WantToSave();",true);
这是我的 JavaScript 功能:
function WantToSave()
{
alert('You should save now !');
}
这是我的 ASP.NET 代码:
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "WantToSave();");
达到了RegisterStartupScript
功能,可以的。但它不会触发我的 JavaScript 功能。第二个参数,它应该是 "Key of the starting script" 是的,但我应该放在那里什么?
你应该试试这个:
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);
默认情况下,脚本被写入输出但没有 <script>
标签。如果您使用浏览器的 JavaScript 控制台或在客户端查看生成的 HTML,您可能会注意到这一点。确保您熟悉这些工具。
您可以使用 slightly different overload 方法让它为您添加脚本标签。
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "WantToSave();", true);
或者您可以自己添加:
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "<script>WantToSave();</script>");
键字符串和控件注册类型的组合用于唯一标识已注册的脚本,以防您以后想要注销它或用其他脚本替换它。所以密钥不必是任何特定的东西,只是一些独特的东西。
根据使用此重载的 MSDN,您必须将调用包装在 <script></script>
标记中,因此您可以:
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "<script>WantToSave();</script>");
或使用其他重载
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "WantToSave();", true);
这将根据布尔参数添加或不添加它们。
您可以使用脚本管理器注册启动脚本的方法。它有一个名为 add script tags 的 bool 参数(最后一个),它会为您添加脚本标签。
ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "WantToSave();",true);