文档章节

asp.net中调用javascript自定义函数的方法(包括引入JavaScript文件)总结

黄献
 黄献
发布于 2012/11/04 21:28
字数 893
阅读 936
收藏 0

通常javascript代码可以与HTML标签一起直接放在前端页面中,但如果JS代码多的话一方面不利于维护,另一方面也对搜索引擎不友好,因为页面因此而变得臃肿;所以一般有良好开发习惯的程序员都会把javascript代码放到独立的js文件中,其他页面通过引入该js文件来使用相应的 javascript代码。
用如下方法引用JS文件:<script src="script/admin.js" type="text/javascript"></script>。

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等,要把转页代码放

在脚本里面

© 著作权归作者所有

共有 人打赏支持
上一篇: 技术朋友博客
下一篇: Js的MessageBox
黄献
粉丝 0
博文 17
码字总数 87682
作品 0
杭州
高级程序员
私信 提问
ASP.NET后台中调用前台Javascript函数的几种方法

做web开发,用的技术是aspx.net,可是由于比较习惯于ASP现在做起来,觉得非常别扭,原因在于有很多功能其实在前台可以处理的,但是因为用到了很多webcontrol,导致不断postback。如果利用aja...

rstaryan
2013/07/18
0
0
ASP.NET MVC的客户端验证:jQuery的验证

之前我们一直讨论的Model验证仅限于服务端验证,即在Web服务器根据相应的规则对请求数据实施验证。如果我们能够在客户端(浏览器)对用户输入的数据先进行验证,这样会减少针对服务器请求的频...

长平狐
2012/09/04
670
0
javascript在asp.net中运用

Net是微软公司下一代的战略核心,ASP.Net是.Net战略在Web开发方面的具体实现。它继承了ASP的简单性和易用性,同时克服了ASP程序结构化较差,难于阅读和理解的缺点。特别是服务器端控件和事件...

crossmix
2015/04/19
0
0
ASP.NET AJAX调用WebService

如何在客户端直接调用WebService中的方法? 这里结合经验自己写一写 1.首先新建一个 ASP.NET AJAX-Enabled Web Site,这样系统为我们自动配置好了环境,这主要体现在Web.config这个文件上,如...

孟宪迎
2009/06/28
2.1K
2
ASP.NET Core Web 资源打包与压缩

在ASP.Net中可以使用打包与压缩这两种技术来提高Web应用程序页面加载的性能。通过减少从服务器请求的次数和减少资源文件的体积来提高加载性能。 打包是一地将多个文件(CSS,JavaScript等资源...

whltian
2018/12/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

netty

##1.Netty 简介 Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifi......

xpttxsok
52分钟前
2
0
Nginx 架构——【核心流程+模块介绍】

1. Nginx简介以及特点 Nginx简介: Nginx (engine x) 是一个高性能的Web服务器和反向代理服务器,也是一个IMAP/POP3/SMTP服务器 俄罗斯程序员Igor Sysoev于2002年开始 Nginx是增长最快的Web...

java知识分子
53分钟前
2
0
winscp中使用sudo的方法

用截图了解如何在 WinSCP 中使用 sudo。 首先你需要检查你尝试使用 WinSCP 连接的 sftp 服务器的二进制文件的位置。 你可以使用以下命令检查 SFTP 服务器二进制文件位置: [root@kerneltalk...

Linux就该这么学
今天
5
0
四、MyBatis中查询执行流程

一、查询执行大致流程 在MyBatis中,查询执行的大致流程如下: 对应的时序图如下: 二、MapperProxy绑定MappedStatement 在MyBatis Mapper Bean初始化深度解析中说过,mapper bean就是Mappe...

yangjianzhou
今天
3
0
系统幂等设计

前言 幂等简单的定义: 系统中的多次操作,不管多少次,都应该产生一样的效果,或返回一样的效果。 比如实际的业务请求为创建一个活动,理论上需要根据业务形态开发幂等创建活动的接口,这样...

春哥大魔王的博客
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部