1、基本概念
JavaScript是基于对象(object-based)的语言。这与Java不同,Java是面向对象的语言。而基于对象的基本特征,就是采用事件驱动(event-driven)。它是在用形界面的环境下,使得一切输入变化简单化。通常鼠标或热键的动作我们称之为事件(Event),而由鼠标或热键引发的一连串程序的动作,称之为事件驱动(Event Driver)。而对事件进行处理程序或函数,我们称之为事件处理程序(Event Handler)。
2、事件处理程序
在JavaScript中对象事件的处理通常由函数(Function)担任。其基本格式与函数全部一样,可以将前面所介绍的所有函数作为事件处理程序。
格式如下:
Function 事件处理名(参数表){
事件处理语句集;
……
}
3、事件驱动
JavaScript事件驱动中的事件是通过鼠标或热键的动作引发的。它主要有以下几个事件:
(1)单击事件onClick
当用户单击鼠标按钮时,产生onClick事件。同时onClick指定的事件处理程序或代码将被调用执行。通常在下列基本对象中产生:
button(按钮对象)
checkbox(复选框)或(检查列表框)
radio (单选钮)
reset buttons(重要按钮)
submit buttons(提交按钮)
例:可通过下列按钮激活change()文件:
<Form>
<Input type="button" Value=“ ” onClick="change()">
</Form>
在onClick等号后,可以使用自己编写的函数作为事件处理程序,也可以使用JavaScript中内部的函数。还可以直接使用JavaScript的代码等。例:
<Input type="button" value=" " onclick=alert("这是一个例子");
(2)onChange改变事件
当利用text或texturea元素输入字符值改变时发该事件,同时当在select表格项中一个选项状态改变后也会引发该事件。
例:
<Form>
<Input type="text" name="Test" value="Test" onCharge="check('this.test)">
</Form>
(3)选中事件onSelect
当Text或Textarea对象中的文字被加亮后,引发该事件。
(4)获得焦点事件onFocus
当用户单击Text或textarea以及select对象时,产生该事件。此时该对象成为前台对象。
(5)失去焦点onBlur
当text对象或textarea对象以及select对象不再拥有焦点、而退到后台时,引发该文件,他与onFocas事件是一个对应的关系。
(6)载入文件onLoad
当文档载入时,产生该事件。onLoad一个作用就是在首次载入一个文档时检测cookie的值,并用一个变量为其赋值,使它可以被源代码使用。
(7)卸载文件onUnload
当Web页面退出时引发onUnload事件,并可更新Cookie的状态。
四、范例
范例1:下例程序是一个自动装载和自动卸载的例子。即当装入HTML文档时调用loadform()函数,而退出该文档进入另一HTML文档时则首先调用unloadform()函数,确认后方可进入。
test3_1.htm
<HTML>
<HEAD>
<script Language="JavaScript">
<!--
function loadform(){
alert("这是一个自动装载例子!");
}
function unloadform(){
alert("这是一个卸载例子!");
}
//-->
</Script>
</HEAD>
<BODY OnLoad="loadform()" OnUnload="unloadform()">
<a href="test.htm">调用</a>
</BODY>
</HTML>
范例2:这是一个获取浏览器版本号的程序。该程序首先显示一个波浪一提示信息。之后显示浏览器的版本号有关信息。
test3_2.htm
<html>
<head>
<script language="JavaScript"><!--
// -->
function makeArray(n){
this.length=n
return this
}
function hexfromdec(num) {
hex=new makeArray(1);
var hexstring="";
var shifthex=16;
var temp1=num;
for(x=1; x>=0; x--) {
hex[x]=Math.round(temp1/shifthex - .5);
hex[x-1]=temp1 - hex[x] * shifthex;
temp1=hex[x-1];
shifthex /= 16;
}
for (x=1; x>=0; x--) { hexstring+=getletter(hex[x]); }
return (hexstring);
}
function getletter(num) {
if (num < 10) { return num; }
else {
if (num == 10) { return "A" }
if (num == 11) { return "B" }
if (num == 12) { return "C" }
if (num == 13) { return "D" }
if (num == 14) { return "E" }
if (num == 15) { return "F" }
}
}
function rainbow(text){
var color_d1;
var allstring="";
for(i=0;i<text.length;i=i+2){
color_d1=255*Math.sin(i/(text.length/3));
color_h1=hexfromdec(color_d1);
allstring+="<FONT COLOR="+color_h1+"ff"+color_h1+">"+text.substring(i,i+2)+"</FONT>";
}
return allstring;
}
function sizefont(text){
var color_d1;
var allstring="";
var flag=0;
for(i=0,j=0;i<text.length;i=i+1){
if (flag==0) {
j++;
if (j>=7) {
flag=1;}}
if (flag==1) {
j=j-1;
if (j<=0) {
flag=0; }}
allstring+="<FONT SIZE="+ j + ">" + text.substring(i,i+1) + "</FONT>";
}
return allstring;
}
document.write("<font size=8><CENTER>")
document.write("<BR><BR>")
document.write( sizefont("这是一个获取WEB浏览器的程序"))
document.write("</CENTER></font>")
document.write("浏览器名称: "+navigator.appName+"<br>");
document.write("版本号: "+navigator.appVersion+"<br>");
document.write("代码名字: "+navigator.appCodeName+"<br>");
document.write("用户代理标识: "+navigator.userAgent);
</script>
<body>
</body>
</html>
分享到:
相关推荐
4. **可拓展性**:事件驱动架构支持异步事件处理,便于添加新的功能模块,提高系统的可扩展性。 文章中通过一个简单的按键控制LED灯的实验,对比了查询方式和中断方式以及事件驱动方式的实现。在查询方式下,CPU...
### 事件驱动模型实例详解(Java篇) #### 1. 事件驱动模型概念解析 事件驱动模型是现代软件开发中一种关键的编程模式,尤其在图形用户界面(GUI)编程中占据核心地位。该模型围绕三个核心概念构建:事件源、侦听...
### 单片机程序设计中运用事件驱动机制 #### 摘要 本文探讨了如何在单片机程序设计中引入事件驱动机制,通过实际案例分析了这种方法的优点,特别是能够提高系统对多中断的实时响应能力,并降低多中断系统调试的难度...
在Java开发领域,事件驱动模型(Event-Driven Model)是一种广泛采用的设计模式,它通过响应外部事件来触发程序中的特定行为。本文将深入探讨Java中事件驱动模型的应用,特别是通过Swing框架的具体实例来解析这一...
在IT领域,事件驱动编程是一种常见的编程模型,它主要用于构建响应用户输入、系统状态变化或者外部消息的应用程序。本文将详细解析如何利用数据结构中的队列来实现事件驱动编程,并结合给定的“银行排队”场景进行...
综上所述,事件驱动单片机程序设计是现代嵌入式系统开发的重要技术,它涉及到硬件中断、事件处理、任务调度等多个方面。掌握这一技术,将有助于开发出更加高效、可靠的单片机应用程序。在提供的“soft”文件中,很...
事件驱动机制是软件设计中的一种常见模式,尤其在嵌入式系统和实时操作系统中广泛应用。51单片机是一款常见的微控制器,广泛用于各种小型电子设备。本程序框架将事件驱动的概念引入到51单片机的编程中,旨在提高程序...
标题中的“事件驱动51程序通用框架代码”指的是在51单片机上采用事件驱动编程模式的一个通用软件架构。51单片机是微控制器的一种,广泛应用于嵌入式系统设计,尤其适合初学者和低功耗应用。事件驱动编程是一种编程...
5. **多线程**:在复杂的事件驱动系统中,可能会使用多线程来并发处理事件,提高系统的性能。C++11及以后的版本提供了丰富的线程支持,包括`std::thread`、`std::mutex`和`std::condition_variable`等工具。 6. **...
Q-Controllers是一个事件驱动的应用代码框架,适用于低端单片机无法跑操作系统,但又要处理越来越复杂的代码构架的情况。 因为不依赖于操作系统,所以非常容易被移植到stm32之外的其他单片机上。即便不进行移植,...
事件识别模块负责实时监测和识别企业内外的各种经济活动,事件处理模块根据识别出的事件类型及规则库进行相应的会计处理,而结果输出模块则是将处理结果按照要求格式展示给管理者或利益相关者。 会计信息系统的建立...
该工具类是poi基于事件驱动去读取海量excel数据,解决内存溢出以及空单元格的问题。 该压缩包里面有两个文件,TestExcel.java主要是原始的处理方法,操作简单,适合小数据量的读取。 ExampleEventUserModelUtil.java...
技术: 1. spring事件驱动(ApplicationEventPublisher) 2. 策略模式处理事件 目的: 1. 通过event,代码逻辑异步处理 2. 通过策略模式,构建具体监听实现 3. 解耦 4. 容错(降低代码块错误风险)
在编程领域,事件驱动机制是一种常见的软件设计模式,它基于观察者模式,使得程序能够对特定事件的发生作出反应。在本场景中,我们讨论的是如何使用C++来实现这种机制,而不依赖任何特定的平台库。C++本身并不内置...
3. **QP框架**:详细讲解QP框架的组成部分,如QActive活动对象、QEvt事件对象和QF事件队列,以及它们如何协同工作以实现高效的事件处理。 4. **实时性与响应时间**:讨论如何在QP框架下确保系统的实时性能,包括...
实际应用中,开发者需要结合这些资源,了解如何配置事件处理函数,如何处理网络事件,以及如何有效地在多连接环境中管理套接字。 总之,"socketEventMode"是一种基于事件驱动的Socket通信模式,通过“WSAStartup”...
Q-Controllers是一个事件驱动的应用代码框架,适用于低端单片机无法跑操作系统,但又要处理越来越复杂的代码构架的情况。 因为不依赖于操作系统,所以非常容易被移植到stm32之外的其他单片机上。即便不进行移植,...
### 事件驱动的应用架构和应用 #### 一、事件驱动应用架构概述 事件驱动架构(Event-Driven Architecture,简称EDA)是一种设计计算机软件系统的方法,它利用事件来触发应用程序之间的通信。这种架构的核心在于,...
### WindML事件驱动机制分析 #### 一、嵌入式系统与WindML的背景 随着多媒体信息技术、互联网技术、通信技术以及消费类电子产品智能化趋势的不断加强,嵌入式系统因其特有的优势——占用内存少、高性能、具有完全...
事件驱动架构(Event-driven Architecture,简称EDA)是一种在软件开发中广泛采用的体系结构范式,它的核心思想是通过事件的发布和订阅来驱动软件组件之间或服务之间的交互与通信。EDA作为一个面向服务架构(Service...