问题描述
- 请问asp.net后台怎么调用前台写好的JavaScript函数
-
前台<script type="text/javascript"> $(".btn").click(function(){ is_hide(); }) function is_hide(){ $(".alert").animate({"top":"-40%"}, 300) } function is_show(){ $(".alert").show().animate({"top":"45%"}, 300) } </script>
后台
protected void submit_Click(object sender, EventArgs e) { string username = this.username.Value; string password = this.password.Value; if ((username == "123")&&(password == "123")) { //怎么调用is_show()????? } }
解决方案
后台调用不了前台的。。只有前台调用后台,后台处理后,返回给前台。另外贴代码记得点编辑器的</>图标
解决方案二:
C#后台调用前台js代码
前台js
<script type="text/javascript" language="javascript">
function Ceshi()
{
var a = "你们好啊!"
alert(a);
}
</script>
<asp:Button ID="Button1" runat="server" Text="后台调用js" onclick="Button1_Click" />
后台代码
protected void Button1_Click(object sender, EventArgs e)
{
//如果有UpdatePanel就用如下代码调用前台js
ScriptManager.RegisterStartupScript(UpdatePanel1, this.Page.GetType(), "", "Ceshi();", true);
//如果没有就如下代码
this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "", "<script>Ceshi();</script>", true);
}
解决方案三:
1. 用Response.Write方法
代码如下:
Response.Write("<script type='text/javascript'>alert("XXX");</script>");
此方法缺陷就是不能调用脚本文件中的自定义的函数,只能调用内部函数,具体调用自定义的函数只能在Response.Write写上函数定 义,比如
Response.Write("<script type='text/javascript'>function myfun(){}</script>");
2.用ClientScript类
代码如下:在想调用某个javascript脚本函数的地方添加代码,注意要保证MyFun已经在脚本文件中定义过了。
ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>MyFun();</script>");
这个方法比Response.Write更方便一些,可以直接调用脚本文件中的自定义函数。
3.普通的添加控件的Attributes属性
对于普通按钮就是:Button1.Attributes.Add("onclick","MyFun();");
只能在Onload中或类似于onload的初始化过程中添加才有效。而且是先执行脚本函数,无法改变执行顺序。
http://www.cnblogs.com/MyFavorite/archive/2010/04/13/1710934.html
解决方案四:
http://blog.csdn.net/ouerhuilaikankan/article/details/46635999
解决方案五:
后台一般不建议调用js
时间: 2024-12-20 19:41:14