[Asp.net+JS]asp.net中调用javascript自定义函数的方法总结
2011-05-27 13:07
1121 查看
通常javascript代码可以与HTML标签一起直接放在前端页面中,但如果JS代码多的话一方面不利于维护,另一方面也对搜索引擎不友好,因为页面因此而变得臃肿;所以一般有良好开发习惯的程序员都会把javascript代码放到独立的js文件中,其他页面通过引入该js文件来使用相应的 javascript代码。
今天在做一个小新闻系统的管理页面时因为图方便,刚开始所有用到的自定义javascript函数都放在了 admin.aspx页面中,功能实现后为了让前端页面显示简洁规范些,我把所有自定义的javascript函数都放到admin.js文件里了,然后在admin.aspx页面中通过<link href="script/admin.js" type="text/javascript" />引入该js文件。接着问题出现了,里面定义的函数有的调用正常,有的却出错了,提示缺少对象。如果是文件路径不对应该所有脚本函数都不能调用才对;但如果路径正确的话为什么有的函数可以正常调用有的却不能呢?不解!
接着上网查了一下,有人也遇到这种情况在CSDN中发贴提问,不过似乎也没解决;然后尝试用另一种方法引用JS文件:<script src="script/admin.js" type="text/javascript"></script>。再运行,所有脚本函数调用正常,看来问题是出现在调用方式上。那究竟javascript的各种引入方式有什么区别呢?下面让十万个为什么为大家总结一下:
ASP.NET本身就提供了多种调用javascript脚本的方法,笔者在这里总结了六种调用方法,大家可以根据自己的使用习惯选择相应的调用方式了!
1、直接在前台页面调用自定义的javascript 函数:
很简单,在 head 元素之间加入 script 元素,将 type 元素设置为 " text/javascript "
如:
<head runat="server">
<script type="text/javascript" >
function ShowName(str)
{
alert("十万个为什么的站长是:("+str+")");
}
</script>
<title>using javascript</title>
</head>
之后在body 元素间,通过事件来访问,比如要通过button1 的单击事件(onclientclick)来访问 javascript 函数的ShwoName()的示例如下:
<asp:Button ID="Button1" runat="server" Text="Button" onclientclick="ShowName('伍锐锋')" />
这时运行项目,单击 button时,会显示"十万个为什么 ,的站长是:伍锐锋"
这就是在前端页面直接定义及调用javascript函数.
2、在前台通过引入js文件来调用相应的函数:
方法与(1)一样,只不过需要指定要调用的js 文件
示例如下:
<head runat="server">
<script type="text/javascript" src="kenscript.js">
</script>
<title>using javascript</title>
</head>
之后在body 元素间,通过事件来访问, 比如要通过button1 的单击事件(onclientclick)来访问 javascript 函数的示例如下:
//此时 .js文件中必须有 ShowName 方法
<asp:Button ID="Button1" runat="server" Text="Button" onclientclick="ShowName('伍锐锋')" />
3、在后台调用 javascript 函数,函数在.js文件中
前台的head 元素
<head runat="server">
<script type="text/javascript" src="kenscript.js">
</script>
<title>using javascript</title>
</head>
后台的需要添加如下代码
Button1.Attributes.Add("onclick", "showname1(‘伍锐锋’)");
4、在后台调用 javascript 函数,函数写在对应的js文件中,但并没有在前台定义,示例如下:
//获得.js文件
string myscript = "kenscript.js";
//注册.js文件
Page.ClientScript.RegisterClientScriptInclude("myKey", myscript);
如果此时查看源码,会得到如下代码
//<script src ="kenscript.js" type="text/javascript"><script>
//同上
Button1.Attributes.Add("onclick", "showname1('伍锐锋')");
5. 用Response.Write方法写入脚本
比如在你单击按钮后,先操作数据库,完了后显示已经完成,可以在最后想调用的地方写上
Response.Write("<script type='text/javascript'>alert("操作完成!");</script>");
不过呢,这个方法有个缺陷就是不能调用脚本文件中的自定义的函数,只能调用内部函数,具体调用自定义的函数只能在Response.Write写上函数定义,比如Response.Write("<script type='text/javascript'>function myfun(){...}</script>");
6.用ClientScript类动态添加脚本
用法如下:在想调用某个javascript脚本函数的地方添加代码,注意要保证MyFun已经在脚本文件中定义过了。
ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>MyFun();</script>");
这个方法比Response.Write更方便一些,可以直接调用脚本文件中的自定义函数,不过跟前面几种相比没那么简洁直观。
注意,以上所有方法中,后台代码都不能有转化当前页的代码,比如Redirect等,要把转页代码放在脚本里面.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Cubuntu/archive/2010/10/13/5939517.aspx
今天在做一个小新闻系统的管理页面时因为图方便,刚开始所有用到的自定义javascript函数都放在了 admin.aspx页面中,功能实现后为了让前端页面显示简洁规范些,我把所有自定义的javascript函数都放到admin.js文件里了,然后在admin.aspx页面中通过<link href="script/admin.js" type="text/javascript" />引入该js文件。接着问题出现了,里面定义的函数有的调用正常,有的却出错了,提示缺少对象。如果是文件路径不对应该所有脚本函数都不能调用才对;但如果路径正确的话为什么有的函数可以正常调用有的却不能呢?不解!
接着上网查了一下,有人也遇到这种情况在CSDN中发贴提问,不过似乎也没解决;然后尝试用另一种方法引用JS文件:<script src="script/admin.js" type="text/javascript"></script>。再运行,所有脚本函数调用正常,看来问题是出现在调用方式上。那究竟javascript的各种引入方式有什么区别呢?下面让十万个为什么为大家总结一下:
ASP.NET本身就提供了多种调用javascript脚本的方法,笔者在这里总结了六种调用方法,大家可以根据自己的使用习惯选择相应的调用方式了!
1、直接在前台页面调用自定义的javascript 函数:
很简单,在 head 元素之间加入 script 元素,将 type 元素设置为 " text/javascript "
如:
<head runat="server">
<script type="text/javascript" >
function ShowName(str)
{
alert("十万个为什么的站长是:("+str+")");
}
</script>
<title>using javascript</title>
</head>
之后在body 元素间,通过事件来访问,比如要通过button1 的单击事件(onclientclick)来访问 javascript 函数的ShwoName()的示例如下:
<asp:Button ID="Button1" runat="server" Text="Button" onclientclick="ShowName('伍锐锋')" />
这时运行项目,单击 button时,会显示"十万个为什么 ,的站长是:伍锐锋"
这就是在前端页面直接定义及调用javascript函数.
2、在前台通过引入js文件来调用相应的函数:
方法与(1)一样,只不过需要指定要调用的js 文件
示例如下:
<head runat="server">
<script type="text/javascript" src="kenscript.js">
</script>
<title>using javascript</title>
</head>
之后在body 元素间,通过事件来访问, 比如要通过button1 的单击事件(onclientclick)来访问 javascript 函数的示例如下:
//此时 .js文件中必须有 ShowName 方法
<asp:Button ID="Button1" runat="server" Text="Button" onclientclick="ShowName('伍锐锋')" />
3、在后台调用 javascript 函数,函数在.js文件中
前台的head 元素
<head runat="server">
<script type="text/javascript" src="kenscript.js">
</script>
<title>using javascript</title>
</head>
后台的需要添加如下代码
Button1.Attributes.Add("onclick", "showname1(‘伍锐锋’)");
4、在后台调用 javascript 函数,函数写在对应的js文件中,但并没有在前台定义,示例如下:
//获得.js文件
string myscript = "kenscript.js";
//注册.js文件
Page.ClientScript.RegisterClientScriptInclude("myKey", myscript);
如果此时查看源码,会得到如下代码
//<script src ="kenscript.js" type="text/javascript"><script>
//同上
Button1.Attributes.Add("onclick", "showname1('伍锐锋')");
5. 用Response.Write方法写入脚本
比如在你单击按钮后,先操作数据库,完了后显示已经完成,可以在最后想调用的地方写上
Response.Write("<script type='text/javascript'>alert("操作完成!");</script>");
不过呢,这个方法有个缺陷就是不能调用脚本文件中的自定义的函数,只能调用内部函数,具体调用自定义的函数只能在Response.Write写上函数定义,比如Response.Write("<script type='text/javascript'>function myfun(){...}</script>");
6.用ClientScript类动态添加脚本
用法如下:在想调用某个javascript脚本函数的地方添加代码,注意要保证MyFun已经在脚本文件中定义过了。
ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>MyFun();</script>");
这个方法比Response.Write更方便一些,可以直接调用脚本文件中的自定义函数,不过跟前面几种相比没那么简洁直观。
注意,以上所有方法中,后台代码都不能有转化当前页的代码,比如Redirect等,要把转页代码放在脚本里面.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Cubuntu/archive/2010/10/13/5939517.aspx
相关文章推荐
- [Asp.net+JS]asp.net中调用javascript自定义函数的方法总结
- asp.net中调用javascript自定义函数的方法(包括引入JavaScript文件)总结
- asp.net中调用javascript自定义函数的方法(包括引入JavaScript文件)总结
- asp.net中调用javascript自定义函数的方法(包括引入JavaScript文件)总结
- javascript与cs代码互相调用 asp.net中前台javascript与后台C#交互 这里主要包括了javascipt与后台CS代码四种方法互调(其中包括函数与变量的访问)
- ASP.NET调用javascript脚本的方法总结
- Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库 自定义日志记录功能,按日记录,很方便 C#常量和字段以及各种方法的语法总结 类型,对象,线程栈,托管堆在运行时的关系,以及clr如何调用静态方法,实例方法,和虚方法 asp.net webapi 自定义身份验证
- ASP.NET后台调用前台JS函数的三种常见方法
- js调用父框架函数与弹窗调用父页面函数的方法_站长帮帮网-asp.net教程-flash as3教程
- ...后台代码中如何调用 javascript 函数的问题! - ASP.NET专题(按钮事件中调用JS文件中函数)
- ...后台代码中如何调用 javascript 函数的问题! - ASP.NET专题(按钮事件中调用JS文件中函数)
- ASP.NET调用javascript脚本的方法总结
- ASP.NET调用javascript脚本的方法总结
- 在asp.net的方法里如何调用javascript的函数
- ASP.NET后台调用前台JS函数的三种常见方法
- (转)ASP.NET调用javascript脚本的方法总结
- 在ASP.NET中用JS如何调用Server端方法?
- ASP.NET,C#后台调用前台javascript的五种方法
- Asp.net中JQuery、ajax调用后台方法总结
- JS调用asp.net后台方法:PageMethods