(1)一 个 简 单 的 例 子
JavaScript的 编 程 工 作 复 杂 与 否 和HTML文 档所
提 供 的 功 能 大 小 密 切相 关 ,我 们 用 几 个 简
单 的 例 子 来介 绍 它 的 编 程 特 点 。
例 1.一 个 简 单 的 Script
<HTML>
<TITLE>This is a test</TITLE>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- to hide script contents from old browsers
// end hiding contents from old browsers-->
</SCRIPT>
</HEAD>
<BODY>
This is a test:
<SCRIPT LANGUAGE="JavaScript">
document.write "Hello!"
</SCRIPT>
</BODY>
</HTML>
例 1显 示 结 果 为 :
This is a test:Hello!
从 以 上 例 子 中 可 以 发 现 ,JavaScript源 代 码
被 嵌 在 一 个 HTML文 档 中,它 可 以出 现 在 文档
头 部 (HEAD节 )和 文 档 体 部 (BODY节 )。SCRIPT标
记 的 一 般 格 式 为 :
<SCRIPT LANGUAGE="JavaScript">
JavaScript语 句 串 ...
</SCRIPT>
为 了 使 老 版 本的浏览器(即Navigator2.0版 以前的
浏 览 器 )避 开 不 识 别 的"JavaScript语句串 ",用
JavaScript编 写 的 源 代 码 可 以 用注 解 括 起来
,即 ,使 用 HTML 的注 解 标 记 <!--???-->(如上例
所 示 ),而 Navigator 2.x可 以 识 别 放 在注 解 行
中的 JavaScri pt源 代 码 。
(2)一 个 调 用 函 数 的 例 子
内 建 函 数 在 JavaScript中 占 有 很 大的 比例,由
于 它 由 Netscape浏 览 器 支 持 并解 释 执 行 ,给
Web制 作 者 提供了编写 的 工具函 数 ;JavaScript还
为 用 户 提 供 自 己 定义 函 数 和 调用函数的能力
,使 Web编 写 者 具 有 编程 手 段 的 灵 活 性 。
函 数 的 定 义 与 调 用 同 一 般 的 程 序设 计 语
言 类 似 ,但 由 于 浏 览 器 浏 览的Web页 是 顺 序
从 WWW服 务 器 调 出 ,并 由 Netscape浏 览 器解 释
执 行 的 ,函 数 必 须 先定义(一 般 放在 HEAD节)后
调用 (一 般 放 在 BODY节 )。
例 2.一 个 有 函 数 定 义 和 调 用的 JavaScript
<HTML>
<TITLE>This is a function's test </TITLE>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- to hide script contents from old browsers>
function square(i){
document.write("The call passed",i,"to the square
function.","
")
return i*i
}
document.write("The function re-turned",square(8)
,".")
//end hiding contents from old drowsers
-->
</SCRIPT>
</HEAD>
<BODY>
<BR>
All done.
</BODY>
</HTML>
该 例 显 示 结 果 为 :
The call passed 8 to the square
func-tion.
The function returned 64.
All done.
从 执 行 结 果 可 以 看 出 ,一 个 函数 定 义 时 并
不 发 生 作 用 ,只 有 在 引 用 时 (函数 定 义 后的
document.write语 句 )才被 激 活 。
(3)编 写 事 件 处 理 程 序
JavaScript的 应 用 中 大 量 采 用 事件 驱 动 。Web
页 中 的 一 个 事 件 是 指 用 户 做一 件 事 后引起
的 动 作 。 例 如 ,用 户 移 动 鼠 标到 某 个链接点
、 点 击 鼠 标 、 针 表 格 填 写 后 的 提 交动作等
都 被 认 为 是 一 个 事 件 。 Web页作 者 可 以定义
事件 处 理 程 序(event handl er),在 出 现 一 个 事
件 后 自 动 触 发 执 行 该 事 件 处 理 程 序 。
例 3是 一 个 由 事 件驱 动(输入后点击 Cal-culate按
钮 的 动 作 )的 例 子 。
例 3.具 有 填 表 和 提 交 功 能 的事件处理 Script
<HTML>
<TITLE>Form Object example </TITLE>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
function compute(obj){
obj.result.value=eval(obj.expr.value)
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="evalform" METHOD="get">
Enter an expression:
<TNPUT TYPE="text"NAME="expr" SIZE=20>
<BR>
Result:
<INPUT TYPE="text"NAME="result"
SIZE=15>
<BR>
<INPUT TYPE="button"NAME="Bottom1"
VALUE="Calculate"
onClick="compute(this.form)">
</FORM>
</BODY>
</HTML>
该 例 运 行 时 出 现 :
Enter an expression: ______
Result: ______
Calculate
在 Enter an expression:栏 中 输 入 一个表达式(如
22*3-6),然 后 点 击Calculate按 钮 ,相应 的结果显
示 在 Result栏 内 (如 60)。
由 例 3源 代 码 和 运 行 结 果 可 以 看 出 :
① 在 HTML源 代 码 的头部定义 了一个名叫compute的
函 数 ,其 形式 参 数 obj是一 个form(表 格 )。当用
户 输 入 表 达 式 后 ,点 击 Calculate按 钮 ,由 此
触 发 的 事 件 处理 程 序 onClick调 用compute函数
,并 携 带 了 参 数 this.form,将 表 格 对 象(由 <
FORM>贩?</FOR M>定 义 )交 给事 件 处 理 程序调
用 的 函 数 compute去 处 理 。
函 数 compute由 一 条 赋 值 语 句 构成 ,其 右 部是
JavaScript的 内 建 函 数 eval,它 可以 自 动 分析表
格 中 名 为 "expr"栏 内 的 输 入 字 符 串 ,计 算出
其 值 ;计 算 出 的 结 果传 送 给 表 格(form)中名为
"result"的 栏 内 ,这 样 ,在 屏 幕 上 Result:后的框
中 出 现 计 算结 果 。
除 例 3中 出现的JavaScript事件处理 程 序onClick,另
外 还 有 一 些 类似 程 序 ,包括 :on-Blur,onChange
,onFocus,onLoad,on-MouseOver,onSelect,onSubmit,
onUn-load等 。