JavaScript教程

 目 录

一、 JavaScript语言概况
    什么是JavaScript
    JavaScript和Java的区别
    JavaScript程序运行环境
    编写第一个JavaScript程序
二、 JavaScript基本数据结构
    JavaScript代码的加入
    基本数据类型
    表达式和运算符
    范例:跑马灯效果
三、 JavaScript程序构成
    程序控制流
    函 数
    事件驱动及事件处理
    范例:自动装卸载;获取版本号
四、 基于对象的JavaScript语言
    对象的基础知识
    常用对象的属性和方法
    范例:时钟
五、 创建新对象
    对象的定义
    创建对象实例
    对象方法的使用
    JavaScript中的数组
    范例:动态文字滚动;颜色变化
六、 使用内部对象系统
    浏览器对象层次及其主要作用
    文档对象功能及其作用
    范例:文档对象的综合应用
七、 窗口及输入输出
    窗口及输入输出
    简单的输入、输出例子
    范例:在线时间
八、 WEB页面信息交互
    窗体基础知识
    窗体中的基本元素
    范例:动态按钮
九、 实现更复杂交互
    什么是框架
    如何访问框架
    范例:动态交互


第一讲 JavaScript语言概况
  Internet时代,造就了我们新的工作和生活方式,其互联性、开放性和共享信息的模式,打破了传统信息传播方式

的重重壁垒,为我们带来了新的机遇。随着计算机和信息时代的到来,人类社会前进的脚步在逐渐加快,每一天都有新

的事情发生,每一天都在创造着奇迹。随着Internet技术的突飞猛进,各行各业都在加入Internet的行业中来。无论从

管理方面,还是从商业角度来看,Internet都可以带来无限生机。通过Internet,可以实现地区、集体乃至个人的连接

,从而达到一种“统一的和谐”。那么怎样把自己的或公司的信息资源加入到 WWW 服务器,是广大用户日益关心的问题

。采用超链技术(超文本和超媒体技术)是实现这个目标最简单的、最快速的手段和途径。具体实现这种手段的支持环

境,那就是HTML超文本标识语言。通过它们可制作所需的Web网页。
  通过超文本(Hyper Text)和超媒体(Hyper Media)技术结合超链接(Hyper link)的链接功能将各种信息组织成网络

结构(web),构成网络文档(Document),实现Internet上的“漫游”。通过HTML符号的描述就可以实现文字、表格、声

音、图像、动画等多媒体信息的检索。
  然而采用这种超链技术存在有一定的缺陷,那就是它只能提供一种静态的信息资源,缺少动态的客户端与服务器端

的交互。虽然可通过CGI (Common Gateway Interface)通用网关接口实现一定的交互,但由于该方法编程较为复杂,

因而在一段时间防碍了Internet技术的发展。而JavaScript的出现,无疑为Internet网上用户带来了一线生机。可以这

样说,JavaScript的出现是时代的需求,是当今的信息时代造就了JavaScript。
  JavaScript的出现,它可以使得信息和用户之间不仅只是一种显示和浏览的关系,而是实现了一种实时的、动态的

、可交式的表达能力。从而基于CGI静态的HTML页面将被可提供动态实时信息,并对客户操作进行反应的Web页面的取代

。JavaScript脚本正是满足这种需求而产生的语言。它深受广泛用户的喜爱的欢迎。它是众多脚本语言中较为优秀的一

种,它与WWW的结合有效地实现了网络计算和网络计算机的蓝图。无凝Java家族将占领Internet网络的主导地位。因此

,尽快掌握JavaScript脚本语言编程方法是我国广大用户日益关心的。

一、什么是JavaScript

  JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。使用它的目的是与

HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。

从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷

,它是Java与HTML折衷的选择,具有以下几个基本特点:
 

是一种脚本编写语言
  JavaScript是一种脚本语言,它采用小程序段的方式实现编程。像其它脚本语言一样,JavaScript同样已是一种解

释性语言,它提供了一个易的开发过程。
  它的基本结构形式与C、C++、VB、Delphi十分类似。但它不像这些语言一样,需要先编译,而是在程序运行过程中

被逐行地解释。它与HTML标识结合在一起,从而方便用户的使用操作。

基于对象的语言。
  JavaScript是一种基于对象的语言,同时以可以看作一种面向对象的。这意味着它能运用自己已经创建的对象。因

此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。

简单性
  JavaScript的简单性主要体现在:首先它是一种基于Java基本语句和控制流之上的简单而紧凑的设计, 从而对于学

习Java是一种非常好的过渡。其次它的变量类型是采用弱类型,并未使用严格的数据类型。

安全性
  JavaScript是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许对网络文档进行

修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失。

动态性
JavaScript是动态的,它可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户的反映响应,是采用

以事件驱动的方式进行的。所谓事件驱动,就是指在主页(Home Page)中执行了某种操作所产生的动作,就称为“事件

”(Event)。比如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后,可能会引起相应的事件响应。

跨平台性
JavaScript是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript的浏览器就可正确

执行。从而实现了“编写一次,走遍天下”的梦想。

  实际上JavaScript最杰出之处在于可以用很小的程序做大量的事。无须有高性能的电脑,软件仅需一个字处理软件

及一浏览器,无须WEB服务器通道,通过自己的电脑即可完成所有的事情。
  综合所述JavaScript 是一种新的描述语言,它可以被箝入到 HTML 的文件之中。 JavaScript语言可以做到回应使

用者的需求事件 (如: form 的输入) ,而不用任何的网路来回传输资料,所以当一位使用者输入一项资料时,它不用

经过传给伺服端 (server)处理,再传回来的过程,而直接可以被客户端 (client) 的应用程式所处理。
  JavaScript 和 Java 很类似,但到底并不一样! Java 是一种比 JavaScript 更复杂许多的程式语言,而

JavaScript 则是相当容易了解的语言。JavaScript 创作者可以不那麽注重程式技巧,所以许多 Java 的特性在 Java

Script 中并不支援。

二、JavaScript和Java的区别

  虽然JavaScript与Java有紧密的联系,但却是两个公司开发的不同的两个产品。Java是SUN公司推出的新一代面向

对象的程序设计语言,特别适合于Internet应用程序开发;而JavaScript是Netscape公司的产品,其目的是为了扩展

Netscape Navigator功能,而开发的一种可以嵌入Web页面中的基于对象和事件驱动的解释性语言, 它的前身是Live

Script;而Java的前身是Oak语言。下面对两种语言间的异同作如下比较:

基于对象和面向对象
  Java是一种真正的面向对象的语言,即使是开发简单的程序,必须设计对象。
JavaScript是种脚本语言,它可以用来制作与网络无关的,与用户交互作用的复杂软件。它是一种基于对象(Object

Based)和事件驱动(Event Driver)的编程语言。因而它本身提供了非常丰富的内部对象供设计人员使用。

解释和编译
  两种语言在其浏览器中所执行的方式不一样。Java的源代码在传递到客户端执行之前,必须经过编译,因而客户端

上必须具有相应平台上的仿真器或解释器,它可以通过编译器或解释器实现独立于某个特定的平台编译代码的束缚。
  JavaScript是一种解释性编程语言,其源代码在发往客户端执行之前不需经过编译,而是将文本格式的字符代码发

送给客户编由浏览器解释执行。

强变量和弱变量
  两种语言所采取的变量是不一样的。
  Java采用强类型变量检查,即所有变量在编译之前必须作声明。如:
  Integer x;
  String y;
  x=1234;
  x=4321;
  其中X=1234说明是一个整数,Y=4321说明是一个字符串。
  JavaScript中变量声明,采用其弱类型。即变量在使用前不需作声明,而是解释器在运行时检查其数据类型,如:
  x=1234;
  y="4321";
  前者说明x为其数值型变量,而后者说明y为字符型变量。

代码格式不一样
  Java是一种与HTML无关的格式,必须通过像HTML中引用外媒体那么进行装载,其代码以字节代码的形式保存在独立

的文档中。
  JavaScript的代码是一种文本字符格式,可以直接嵌入HTML文档中,并且可动态装载。编写HTML文档就像编辑文本

文件一样方便。

嵌入方式不一样
  在HTML文档中,两种编程语言的标识不同,JavaScript使用<Script>...</Script>来标识,而Java使用

<applet>...</applet>来标识。

静态联编和动态联编
  Java采用静态联编,即Java的对象引用必须在编译时的进行,以使编译器能够实现强类型检查。
JavaScript采用动态联编,即JavaScript的对象引用在运行时进行检查,如不经编译则就无法实现对象引用的检查。

三、JavaScript程序运行环境

软件环境:
  Windows 95/98或Windows NT。
  Netscape Navigator x.0或Internet Explorer x.0。
  用于编辑HTML文档的字符编辑器(WS、WPS、Notepad、WordPad等)或HTML文档编辑器。
硬件配置:
  首先必须具备运行Windows 95/98或Windows NT的基本硬件配置环境。推荐:
  基本内存32M。
  CRT只少需要256颜色,分辨率在640X480以上。
  CPU只少133以上。
  鼠标和其它外部设置(根据需要选用)。

四、编写第一个JavaScript程序

  下面我们通过一个例子,编写第一个JavaScript程序。通过它可说明JavaScript的脚本是怎样被嵌入到HTML文档中

的。
test1.html文档:
<html>
<head>
<Script Language ="JavaScript">
// JavaScript Appears here.
alert("这是第一个JavaScript例子!");
alert("欢迎你进入JavaScript世界!");
alert("今后我们将共同学习JavaScript知识!");
</Script>
</Head>
</Html>
 在Internet Explore5.0中运行行后的结果见下图所示。

说明:
  test.html是HTML文档,其标识格式为标准的HTML格式;
  如同HTML标识语言一样, JavaScript程序代码是一些可用字处理软件浏览的文本,它在描述页面的HTML相关区域

出现。
  JavaScript代码由 <Script Language ="JavaScript">...</Script>说明。在标识<Script Language

="JavaScript">...</Script>之间就可加入JavaScript脚本。
  alert()是JavaScript的窗口对象方法,其功能是弹出一个具有OK对话框并显示()中的字符串。
  通过<!-- ...//-->标识说明:若不认识JavaScript代码的浏览器,则所有在其中的标识均被忽略;若认识,则执

行其结果。使用注释这是一个好的编程习惯,它使其他人可以读懂你的语言。
  JavaScript 以 </Script> 标签结束。
  从上面的实例分析中我们可以看出,编写一个JavaScript程序确实非常容易的。
 
第二讲 JavaScript基本数据结构
  JavaScript提供脚本语言的编程与C++非常相似,它只是去掉了C语言中有关指针等容易产生的错误,并提供了功

能强大的类库。对于已经具备C++或C语言的人来说,学习JavaScript脚本语言是一件非常轻松愉快的事。

一、JavaScript代码的加入

  JavaScript的脚本包括在HTML中,它成为HTML文档的一部分。与HTML标识相结合,构成了一个功能强大的

Internet网上编程语言。可以直接将JavaScript脚本加入文档:
<Script Language ="JavaScript">
JavaScript语言代码;
JavaScript 语言代码;
....
</Script>

说明:
  通过标识<Script>...</Script>指明JavaScript脚本源代码将放入其间。
  通过属性Language ="JavaScript"说明标识中是使用的何种语言,这里是JavaScript语言, 表示在JavaScript中使

用的语言。  下面是将JavaScript脚本加入Web文档中的例子:
<HTML>
<Head>
<Script Language ="JavaScript">
document. Write("网上世界真精彩!");
document. close();
</Script>
</Head>
</HTML>
  在浏览器的窗口中调用,则显示“网上世界真精彩!”字串。
说明:
  Document. write()是文档对象的输出函数,其功能是将括号中的字符或变量值输出到窗口;document. close()

是将输出关闭。
  可将<Script>...</Script>标识放入head>.. </Head>或<Body> ...</Body>之间。将JavaScript标识放置

<Head>... </Head>在头部之间,使之在主页和其余部分代码之前装载,从而可使代码的功能更强大;可以将

JavaScript标识放置在<Body>... </Body>主体之间以实现某些部分动态地创建文档。

二、基本数据类型
 
  JavaScript脚本语言同其它语言一样,有它自身的基本数据类型、表达式和算术运算符以及程序的基本框架结构。

JavaScript提供了四种基本的数据类型用来处理数字和文字, 而变量提供存放信息的地方, 表达式则可以完成较复杂的

信息处理。

1、基本数据类型
  在JavaScript中四种基本的数据类型:数值(整数和实数)、字符串型(用“”号或‘’括起来的字符或数值)、

布尔型(使True或False表示)和空值。在JavaScript的基本类型中的数据可以是常量,也可以变量。由于JavaScript

采用弱类型的形式,因而一个数据的变量或常量不必首先作声明,而是在使用或赋值时确定其数据的类型的。当然也可

以先声明该数据的类型,它是通过在赋值时自动说明其数据类型的。

2、常量

整型常量
  JavaScript的常量通常又称字面常量,它是不能改变的数据。其整型常量可以使用十六进制、八进制和十进制表示

其值。

实型常量
  实型常量是由整数部分加小数部分表示,如12.32、193.98 。可以使用科学或标准方法表示:5E7、4e5等。

布尔值
  布尔常量只有两种状态:True或False。 它主要用来说明或代表一种状态或标志,以说明操作流程。它与C++是

不一样的,C++可以用1或0表示其状态,而JavaScript只能用True或False表示其状态。

字符型常量
  使用单引号(‘)或双引号(“)括起来的一个或几个字符。如 "This is a book of JavaScript

"、"3245"、"ewrt234234" 等。

空值
  JavaScript中有一个空值null,表示什么也没有。如试图引用没有定义的变量,则返回一个Null值。

特殊字符
  同C语言一样,JavaScript中同样以有些以反斜杠(/)开头的不可显示的特殊字符。通常称为控制字符。

3、变量
  变量的主要作用是存取数据、提供存放信息的容器。对于变量必须明确变量的命名、变量的类型、变量的声明及其

变量的作用域。

变量的命名
  JavaScript中的变量命名同其计算机语言非常相似,这里要注意以下两点:

必须是一个有效的变量,即变量以字母开头,中间可以出现数字如test1、text2等。除下划线(-)作为连字符外,变

量名称不能有空格、(+)、(-)、(,)或其它符号。

不能使用JavaScript中的关键字作为变量。
  在JavaScript中定义了40多个类键字,这些关键是JavaScript内部使用的,不能作为变量的名称。如Var、int、

double、true不能作为变量的名称。

  在对变量命名时,最好把变量的意义与其代表的意思对应起来,以免出现错误。

变量的类型
  在JavaScript中,变量可以用命令Var作声明:
  var mytest;
  该例子定义了一个mytest变量。但没有赋予它的值。
  Var mytest=”This is a book”
  该例子定义了一个mytest变量, 同时赋予了它的值。
  在JavaScript中,变量以可以不作声明,而在使用时再根据数据的类型来确其变量的类型。
  如:
  x=100
  y="125"
  xy= True
  cost=19.5等。
  其中x整数,y为字符串,xy为布尔型,cost为实型。

变量的声明及其作用域
  JavaScript变量可以在使用前先作声明,并可赋值。通过使用var关键字对变量作声明。对变量作声明的最大好处

就是能及时发现代码中的错误;因为JavaScript是采用动态编译的,而动态编译是不易发现代码中的错误,特别是变量

命名的方面。
  对于变量还有一个重要性──那就是变量的作用域。在JavaScript中同样有全局变量和局部变量。全局变量是定义

在所有函数体之外,其作用范围是整个函数;而局部变量是定义在函数体之内,只对其该函数是可见的,而对其它函数

则是不可见的。

三、表达式和运算符

1、表达式
  在定义完变量后,就可以对它们进行赋值、改变、计算等一系列操作,这一过程通常又叫称一个叫表达式来完成,

可以说它是变量、常量、布尔及运算符的集合,因此表达式可以分为算术表述式、字串表达式、赋值表达式以及布尔表

达式等。
2、运算符
  运算符完成操作的一系列符号,在JavaScript中有算术运算符,如+、-、*、/等;有比较运算符如!=、==等;

有逻辑布尔运算符如!(取反)、|、||; 有字串运算如+ 、 +=等。
  在JavaScript主要有双目运算符和单目运算符。其双目运算符由下列组成:
  操作数1 运算符 操作数2
  即由两个操作数和一个运算符组成。如50+40、"This"+"that"等。单目运算符,只需一个操作数,其运算符可在

前或后。
(1)算术运算符
  JavaScript中的算术运算符有单目运算符和双目运算符。
双目运算符:
+(加) 、-(减)、 *(乘)、 /(除)、 %(取模) 、|(按位或)、&(按位与)、<<(左移)、 >>(右移)、

>>>(右移,零填充)。
单目运算符:
-(取反)、~(取补)、++(递加1)、--(递减1)。

(2)比较运算符
  比较运算符它的基本操作过程是,首先对它的操作数进行比较,尔后再返回一个true或False值,有8个比较运算符

:
<(小于)、>(大于)、<=(小于等于)、>=(大于等于)、==(等于)、!=(不等于)。

(3)布尔逻辑运算符
  在JavaScript中增加了几个布尔逻辑运算符:
!(取反)、&=(与之后赋值)、 &(逻辑与)、 |=(或之后赋值)、 |(逻辑或)、 ^=(异或之后赋值)、 ^(逻辑

异或)、 ?:(三目操作符)、||(或)、==(等于)、|=(不等于)。
  其中三目操作符主要格式如下:
操作数?结果1:结果2
  若操作数的结果为真,则表述式的结果为结果1,否则为结果2。

四、范例

  下面是一个跑马灯效果的JavaScript文档。
<html><head><script Language="JavaScript">
var msg="这是一个跑马灯效果的JavaScript文档";
var interval = 100;
var spacelen = 120;
var space10=" ";
var seq=0;
function Scroll() {
len = msg.length;
window.status = msg.substring(0, seq+1);
seq++;
if ( seq >= len ) {
seq = spacelen;
window.setTimeout("Scroll2();", interval );}
else
window.setTimeout("Scroll();", interval );}
function Scroll2() {
var out="";
for (i=1; i<=spacelen/space10.length; i++) out +=
space10;
out = out + msg;
len=out.length;
window.status=out.substring(seq, len);
seq++;
if ( seq >= len ) { seq = 0; };
window.setTimeout("Scroll2();", interval );}
Scroll();
</script><body></body></html>

  本讲介绍了JavaScript脚本是如何加入Web页面, 并学习了JavaScript语言中的基本数据类型、变量、常量、操作

运算符等。从本讲中的内容中可以看出,对于已经掌握C++语言的人来说,学习JavaScript真是一件非常轻松愉快的

事。
 
第三讲 JavaScript程序构成
  JavaScript脚本语言的基本构成是由控制语句、函数、对象、方法、属性等,来实现编程的。

一、程序控制流

  在任何一种语言中,程序控制流是必须的,它能使得整个程序减小混乱,使之顺利按其一定的方式执行。下面是

JavaScript常用的程序控制流结构及语句:
1、if条件语句
 基本格式
if(表述式)
语句段1;
......
else
语句段2;
.....

  功能:若表达式为true,则执行语句段1;否则执行语句段2。
  说明:
  if -else 语句是JavaScript中最基本的控制语句,通过它可以改变语句的执行顺序。
  表达式中必须使用关系语句,来实现判断,它是作为一个布尔值来估算的。
  它将零和非零的数分别转化成false和true。 若if后的语句有多行,则必须使用花括号将其括起来。

if语句的嵌套:
if(布尔值)语句1;
else(布尔值)语句2;
else if(布尔值)语句3;
……
else 语句4;
  在这种情况下,每一级的布尔表述式都会被计算,若为真,则执行其相应的语句,否则执行else后的语句。

2、For循环语句
 基本格式
for(初始化;条件;增量)
语句集;
  功能:实现条件循环,当条件成立时,执行语句集,否则跳出循环体。
  说明:

  初始化参数告诉循环的开始位置,必须赋予变量的初值;
  条件:是用于判别循环停止时的条件。若条件满足,则执行循环体,否则 跳出。
  增量:主要定义循环控制变量在每次循环时按什么方式变化。
  三个主要语句之间,必须使用逗号分隔。

3、while循环
  基本格式
 while(条件)
 语句集;
  该语句与For语句一样,当条件为真时,重复循环,否则退出循环。
  For与while语句都是循环语句,使用For语句在处理有关数字时更易看懂,也较紧凑;而while循环对复杂的语句效

果更特别。

4、break和continue语句
  与C++语言相同,使用break语句使得循环从For或while中跳出,continue使得跳过循环内剩余的语句而进入下一次

循环。

二、函数

  函数为程序设计人员提供了一个丰常方便的能力。通常在进行一个复杂的程序设计时,总是根据所要完成的功能,

将程序划分为一些相对独立的部分,每部分编写一个函数。从而,使各部分充分独立,任务单一,程序清晰,易懂、易

读、易维护。JavaScript函数可以封装那些在程序中可能要多次用到的模块。并可作为事件驱动的结果而调用的程序。

从而实现一个函数把它与事件驱动相关联。这是与其它语言不样的地方。

1、JavaScript函数定义
Function 函数名 (参数,变元){
函数体;.
Return 表达式;
}
说明:
  当调用函数时,所用变量或字面量均可作为变元传递。
  函数由关键字Function定义。
  函数名:定义自己函数的名字。
  参数表,是传递给函数使用或操作的值,其值可以是常量 ,变量或其它表达式。
  通过指定函数名(实参)来调用一个函数。
  必须使用Return将值返回。
  函数名对大小写是敏感的。

2、函数中的形式参数:
  在函数的定义中,我们看到函数名后有参数表,这些参数变量可能是一个或几个。那么怎样才能确定参数变量的个

数呢?在JavaScript中可通过arguments .Length来检查参数的个数。
例:
Function function_Name(exp1,exp2,exp3,exp4)
Number =function _Name . arguments .length;
if (Number>1)
document.wrile(exp2);
if (Number>2)
document.write(exp3);
if(Number>3)
document.write(exp4);

...

三、事件驱动及事件处理

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()函数,确认后方可进入。

<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:这是一个获取浏览器版本号的程序。该程序首先显示一个波浪一提示信息。之后显示浏览器的版本号有关信

息。

<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>

  本讲介绍了JavaScript程序设计的有关内容。程序流、函数、事件是我们学习掌握JavaScript编程的重点。
 
第四讲 基于对象的JavaScript语言
  JavaScript语言是基于对象的(Object-Based),而不是面向对象的(object-oriented)。之所以说它是一门基

于对象的语言,主要是因为它没有提供象抽象、继承、重载等有关面向对象语言的许多功能。而是把其它语言所创建的

复杂对象统一起来,从而形成一个非常强大的对象系统。
  虽然JavaScript语言是一门基于对象的,但它还是具有一些面向对象的基本特征。它可以根据需要创建自己的对象

,从而进一步扩大JavaScript的应用范围,增强编写功能强大的Web文档。

一、对象的基础知识

1、对象的基本结构
  JavaScript中的对象是由属性(properties)和方法(methods)两个基本的元素的构成的。前者是对象在实施其所需

要行为的过程中,实现信息的装载单位,从而与变量相关联;后者是指对象能够按照设计者的意图而被执行,从而与特

定的函数相联。

2、引用对象的途径
  一个对象要真正地被使用,可采用以下几种方式获得:

引用JavaScript内部对象;
由浏览器环境中提供;
创建新对象。
  这就是说一个对象在被引用之前,这个对象必须存在,否则引用将毫无%E

posted @ 2010-03-10 15:14  dearpine  阅读(340)  评论(0编辑  收藏  举报