BBS水木清华站∶精华区
发信人: afei (飞色精灵), 信区: Java
标 题: JavaScript(6)
发信站: BBS 水木清华站 (Mon Aug 4 09:06:05 1997)
发 信 人:新怪侠一枝梅 回信地址:Stephan.bbs@bbs.swjtu.edu.cn
信区名称:Java 信件日期:01 Aug 1997 04:43:00
信件提要:[转载] JavaScript(6)
原发信站:锦城驿站
------------------------------------------------------------[1078/1093]-------
;37m【 以下文字转载自 2mInternet 7m讨论区 】
【 原文由2m Stephan7m 所发表 】m
第 六 集
(转载与www.swjtu.edu.cn)
许 多 网 友 问 我 一 个 有 趣 的 问 题 : 如 何 用 mouse 按 一 下 便 可 同 时 载 入 两 页 文 件。 基 本
上 有 三 种 方 法 可 以 达 到 这 种 功 能。 第 一 种 方 法 是 制 作 一 个 按 钮, 让 使 用 者 按 下 後
去 启 动 一 个 能 同 时 将 两 份 文 件 载 入 不 同frames或 新 视 窗 的 函 式 (function)。 若 您 曾 经
看 过 此 份 简 介 文 件 的 其 它 章 节 的 话, 我 相 信 您 可 以 很 轻 易 写 出 这 种 语 法:
我 们 制 作 了 三 个 frame , 第 一 个 frame 中 包 含 了 一 个 按 钮。 请 注 意, 第 一 个 HTML 档
案 只 是 用 来 打 开 frame 和 给 予 每 个 frame 一 个 名 字。 若 您 还 不 清 楚 JavaScript 和 frame 的
关 系, 可 以 先 阅 读 第 三 章。 不 过 在 此 还 是 照 例 让 您 瞧 瞧 原 始 码 (不 知 您 是 否 在 很
多 电 脑 书 籍 中 遇 到 一 个 相 同 的 困 扰, 那 就 是 作 者 常 把 一 些 自 认 很 简 单 的 东 西 忽
略 不 提, 结 果 那 些 东 西 正 是 读 者 搞 不 懂 的 地 方 ! 所 以, 若 您 对 我 提 的 东 西 已 很 了
解, 请 发 挥 一 下 您 的 耐 性 :-)
frames2.html
<HTML>
<HEAD>
<title>Frames</title>
</HEAD>
<FRAMESET COLS="295,*">
<FRAMESET ROWS="100%,*">
<FRAME SRC="loadtwo.html" NAME="fr1">
</FRAMESET>
<FRAMESET ROWS="75%,25%">
<FRAME SRC="cell.html" NAME="fr2">
<FRAME SRC="cell.html" NAME="fr3">
</FRAMESET>
</FRAMESET>
</HTML>
第 一 个 frame 会 载 入 loadtwo.html 并 产 生 一 个 按 钮 :
loadtwo.html
<HTML>
<HEAD>
<script language="JavaScript">
<!-- Hiding
function loadtwo(page2, page3) {
parent.fr2.location.href=page2;
parent.fr3.location.href=page3;
}
// -->
</script>
</HEAD>
<BODY>
<FORM NAME="buttons">
<INPUT TYPE="button" VALUE="同 时 载 入 两 份 文 件" onClick="loadtwo('frtest1.html',
'frtest2.html')">
</FORM>
</BODY>
</HTML>
按 下 按 钮 後, 电 脑 会 传 递 两 个 字 串 给 loadtwo() 并 将 之 启 动。 由 loadtwo() 中 可 以 看
出, 第 一 个 字 串 是 用 来 定 义 第 二 个 frame fr2所 载 入 文 件 的 位 址 和 档 案 名。 若 您 想 定
义 另 外 的 按 钮 来 载 入 不 同 的 文 件, 您 可 以 重 复 使 用 此 函 式。 只 要 将 文 件 的 URLs
(addresses) 传 给 loadtwo()即 可。
接 下 来 谈 谈 用 hyperlinks 同 时 载 入 两 页 文 件 的 第 二 种 方 法。 在 Internet 上 您 可 以 发 现
许 多 网 页 使 用 <a href="yourlink.html" onCLick="yourfunction()">来 达 到 上 述 提 及 的 功 能。 但
此 语 法 并 不 能 在 所 有 平 台 上 均 正 常 执 行, 因 此 最 好 不 要 用 此 语 法。 现 在 我 告 诉 您
另 一 种 写 法 : 我 们 可 改 用 下 述 JavaScript 语 法:
<a href="javascript:myfunction()">My Link</a>
此 种 方 式 非 常 简 单 而 且 在 所 有 浏 览 器 中 均 能 正 常 执 行。 您 只 要 写 上 javascript: 并 加
上 您 想 联 结 的 函 式 名 即 可。 若 此 函 式 名 称 设 为 'loadtwo()' , 那 您 就 可 藉 由 按 下 此
hyperlink 来 达 到 同 时 载 入 两 份 文 件 的 目 的 了。
再 接 着 谈 谈 用 mouse 按 一 下 便 可 同 时 载 入 两 页 文 件 的 第 三 种 方 法, 此 方 法 可 以 以
hyperlinks 或 按 钮 来 执 行。 您 可 先 在 第 二 个frame 中 载 入 一 个 HTML 文 件 :
<a href="getfr2.html" target="fr2">请 按 这 里 !</a>
然 後 在 此 文 件 中 (getfr2.html) 加 入 onLoad 这 项 指 令, 用 来 触 发 第 三 个 frame 载 入 另 一 份
文 件。 如 此 一 来 便 可 同 时 载 入 两 份 文 件。getfr2.html 档 的 原 始 码 如 下 :
<HTML>
<BODY onLoad="parent.fr3.location.href='getfr3.html'; return true;">
文 件 内 容.....。
</body>
</html>
当 然, 您 必 须 在 所 有 会 被 载 入 到 第 二 个 frame 的 文 件 中 加 入 onLoad 这 项 指 令。
另 一 个 常 遇 见 的 问 题 是 如 何 开 一 个 新 视 窗 并 载 入 文 件?我 们 想 达 到 的 效 果 是 当 使
用 者 按 一 下 mouse 便 会 '弹' 出 一 个 新 视 窗。 很 简 单, 只 要 在 <a href...> 中 利 用 target 这 项
特 性 就 可 达 到 此 效 果。 例 如 :
<a href="goanywhere.html" target="Resource Window">Go!</a>
现 在 我 将 谈 谈 在 JavaScript 中 几 种 常 用 的 运 算 子 (operator)。 运 算 子 可 以 使 您 的
JavaScript 语 法 更 精 简。 假 设 您 想 测 试 变 数 x 是 否 大 於 3 且 小 於 10, 您 可 写 成 :
if (x>3)
if (x<10)
doanything();
当 满 足 x>3 且 x<10 时, 就 会 执 行 doanything()。 还 有 一 种 更 精 简 的 写 法 :
if (x>3 && x<10) doanything();
' &&' 称 为 AND- 运 算 子。 还 有 另 一 种 被 称 为 OR- 运 算 子 的 东 东 可 让 您 用 来 检 视 是 否
变 数 x 等 於 5 或 变 数 y 等 於 17 :
if (x==5 || y==17) doanything();
当 满 足 x==3 或 y==17 时, 就 会 执 行 doanything()。 当 然, 当 两 者 皆 成 立 时 也 会 执 行
doanything()。
在 JavaScript 中 是 利 用 == 来 做 比 较 的 工 作 (其 它 尚 有 <,>,<= 和 >=), 这 些 都 和 C/C++
的 语 法 相 同。 另 外 单 一 '=' 是 用 来 将 数 值 存 入 变 数 用 的。 (在 Pascal 语 法 中 将 数 值 指
定 给 变 数 是 用 :=, 而 做 比 较 是 用 单 一 的 '=', 这 和 JavaScript 语 法 有 点 不 同)
若 您 想 利 用 '不 等 於' 这 项 特 性, 您 可 以 用 !=。 例 如 : x != 17.
尚 有 许 多 可 以 精 简 您 的 JavaScript 语 法 的 运 算 子, 去 翻 翻 Netscape 的 文 件 吧 !
--
9m dMMMMM NdMPOdMP dMMMMMP dMP dMP dMMMMMP
dMP" dMP dMP dMP dMP dMP V
VMMM dMP dMMMP dMP dMP dMMMP (mo o0m)
dP .dMP dMP dMP YMvAP" dMP ( V )
VMMMP dMP dMMMMMP VP" dMMMMMP .......m.m........
� �
;36m※ 修改:.Stephan 于 Jul 30 13:40:50 修改本文.[FROM: 202.115.66.123]m
m;34m※ 来源:.锦城驿站 bbs.swjtu.edu.cn.[FROM: 202.115.66.123]m
m;32m※ 转载:.锦城驿站 bbs.swjtu.edu.cn.[FROM: 202.115.66.121]m
<<<信件结尾>>>
--
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: curie.eps.jhu.e]
BBS水木清华站∶精华区