JScript中的事件函数

  JScript/JavaScript的参考文档甚少,也不是很详细,很多语法也是一知半解,今天在写事件函数时碰到了一个问题,现讨论如下。
  众所周知,在处理HTML元素的事件时可以有多种方法写代码:
1、直接写在HTML元素的on???属性中,如:
< INPUT  TYPE ="BUTTON"  ONCLICK ="alert('Clicked!')"  VALUE ="Click Me!" >
< INPUT  TYPE ="BUTTON"  ONCLICK ="alerter()"  VALUE ="Click Me!" >
这里alerter()是一个写好的JScript函数。
2、使用HTML元素对象的事件属性,如:
< INPUT  ID ="button1"  TYPE ="BUTTON"  VALUE ="Click Me!" >
< SCRIPT  LANGUAGE ="JavaScript" >  
button1.onclick 
= alerter 
function alerter() 

    window.alert(
"You clicked the button!"
}
 
</ SCRIPT >
3、使用<SCRIPT FOR>,如:
< INPUT  ID ="button1"  TYPE ="BUTTON"  VALUE ="Click Me!" >
< SCRIPT  FOR ="button1"  EVENT ="onclick"  LANGUAGE ="JavaScript" >  
    alert(
"You clicked the button!"
</ SCRIPT >  
4、使用attachEvent函数,如:
< INPUT  ID ="button1"  TYPE ="BUTTON"  VALUE ="Click Me!" >
< SCRIPT  LANGUAGE ="JavaScript" >  
button1.attachEvent(
"onclick", alerter)
function alerter()

    window.alert(
"You clicked the button!")
}
 
</ SCRIPT >

  常用的是第1、2种方法,但有些时候使用第2种方法还是比较合适,比如写body.onload时,不一定方便把onLoad属性写在<body>元素内。特别是ASP.Net中编写Web用户控件(.ascx)时,它并没有<body>元素。于是我写了下面的脚本:
window .onload = alert( " Load! " );
很高兴地发现它也能够运行,也没有出错。但是很奇怪,它的下一条语句总是不会执行,比如接着还有一条alert("Hi");打开网页后只会看到一个提示“Load!”的对话框,不会出现“Hi”。而且照理应该先出现“Hi”,再出现“Load”的。
  原来按照方法2的写法,事件函数是不能带参数的!只能写成window.οnlοad=funcname;的形式,而如果想带参数地调用一个或多个函数,可以把这些语句写到一个函数内。也可以写成:
window.onload = function () {alert("Load!");} ;
这样相当于产生一个匿名函数。而按原来的写法在window.onload语句时已经错了,自然不会再执行下面的语句了。
  看来想问题还是要谨慎,不能想当然。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JosunScript 脚本组件是一个采用ATL技术编写的高效稳定的脚本解析器。 能让你的CS模式程序(Vc、VB、Delphi、BC等)轻松解析VbScript,JavaScript脚本语言。 大大增强你的程序逻辑处理的灵活性和程序的交互能力,轻松实现从BS系统提供的页面接口获取数据信息。 最大程度实现程序功能的免编译(只要修改脚本文件即可),为你的用户提供“热插拔”式的升级。 尤其适合于各种流程化的程序设计(工作流函数的操作、呼叫心系统IVR流程化的设计等等)。 本控件使用简便,开发者可根据本文档提供的例子根据自己的实际需求在例子上稍作修改即可。 主要的功能有: 1.加载脚本文件 2.获取脚本函数列表 3.获取脚本的全局变量列表 4.按变量名称 设置、获取 脚本文件里的全局变量值 5.直接执行 文本、变量 设置的脚本代码 6.能获取文本脚本执行结束后脚本里面的变量返回值,返回给调用者,实现脚本技术与其他语言技术的交互. 7.按列表返回的函数、过程名称执行相应的函数、过程。自定义入口参数,并返回执行结果给调用者,实现脚本技术与其他语言技术的交互. 8.实现远程、本地 xml文件的解析,免去在程序内部编写复杂的xml操作类,尤其是像VB这样的程序, 可以大大节约开发时间(本压缩包内的VB的例子就是最典型最简单的解析xml的例子)。 9.可以利用xmlhttp实现asp、jsp等页面的数据的存取解析,轻松访问第三方的数据 10.利用强大的VBScript脚本技术可以实现数据库接口,轻松将程序的变量写入第三方的数据库 如果您正在被流程设计繁杂的逻辑判断、为第三方提供数据接口而烦恼,如果你想在您的产品嵌入 功能强大、高度灵活的脚本功能增强您的产品的竞争力,JosunScript控件可以助您一臂之力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值