![]() |
|
巧用JavaScript四例
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
广告招租,e-mail:yesize@hotmail.com 一、 读 取 客 户 端 屏 幕 设 置 信 息 ---- 众 所 周 知, 主 页 的 浏 览 效 果 与 客 户 端 使 用 的 浏 览 器 以 及 屏 幕 区 域 设 置 有 很 大 关 系。 正 因 为 如 此, 许 多 页 面 都 标 明 了 建 议 使 用 × × 浏 览 器, ×* × 屏 幕 设 置 浏 览 本 页。 了 解JavaScript 的 人 都 知 道, 客 户 端 浏 览 器 信 息 可 以 用JavaScript 中navigator 对 象 来 检 测。 其 实, 屏 幕 区 域 的 设 置 在JavaScript 中 也 可 以 用screen 对 象 来 检 测。 ---- 例 如, 在 下 面 的 程 序 中,JavaScript 检 测 屏 幕 设 置, 据 此 转 向 不 同 效 果 的 页 面。 < script language=JavaScript > < !--- if (screen.width >=800){ parent.location.href=bigscreen.htm; } else parent.location.href=smallscreen.htm; //-- > < /script > 二、 自 动 更 新 网 页 背 景 音 乐 ---- 更 新 及 时 的 主 页 才 能 保 持 对 访 问 者 吸 引 力。 如 果 你 在 网 页 中 加 入 了 背 景 音 乐, 但 又 不 想 让 访 问 者 反 复 听 同 一 首 音 乐 的 话, 用JavaScript 编 一 个 动 态 主 页 随 机 播 放 背 景 音 乐 是 一 种 办 法。 不 过 在 这 里 我 们 采 用 另 一 种 办 法, 用cookies 记 录 访 问 者 游 览 该 页 的 次 数, 根 据 对 该 网 页 的 访 问 次 数 提 供 不 同 的 背 景 音 乐。 ---- ( 对cookies, 本 文 不 作 详 细 讨 论, 如 对 它 不 熟 悉, 请 参 考 有 关 书 刊) < script language= JavaScript > < !-- // 创 建 一 个cookie function setCookie(name,value,expires){document.cookie=name+= +escape(value)+;+expires=+expires+; } // 访 问cookie function getCookieVal(offset){ var endstr=document.cookie.indexOf(;,offset); if (endstr==-1) endstr= document.cookie.length; return unescape(document.cookie.substring(offset,endstr)); } function getCookie(name){ vararg=name+=; var alength=arg.length; var clength=document.cookie.length; var i=0; while(i< clength){ var j=i+alength; if (document.cookie.substring(i,j)==arg) return getCookieVal(j); i=document.cookie.indexOf( ,i)+1; if(i==0) break; } return null; } // 以 下 内 容 可 根 据 实 际 需 要 更 改 var exptime=new Date(); exptime.setTime(exptime.getTime()+3600*1000*24*3); //设置cookies在客户机上保存3天(3*24*1000*3600毫秒)。 i=getCookie(vtime); if ((i==null)||(i >5)) i=0; // 假设共6支背景乐曲0.mid ,……5.mi d string midsrc=i+.mid; document.writeln(< bgsound src=+midsrc+ loop=-1 >); i=++i; setCookie(vtime,i,exptime); < /script > 三、 为 电 子 邮 件 反 馈 表 单 建 立 响 应 页 面 ---- 在 主 页 中 建 立 反 馈 页 面, 其 益 处 是 显 而 易 见 的。 不 过, 如 果 是 个 人 网 页 而 不 能 使 用CGI 的 话, 就 只 能 建 立 以 邮 件 方 式 传 送 的 表 单 了。 然 而, 我 们 都 有 这 样 的 经 验, 一 般 的CGI 反 馈 表 单, 在 提 交 之 后, 总 会 由CGI 程 序 控 制 传 输 一 个 新 的 写 着 你 的 信 息 已 经 收 到 … … 的 确 认 页 面。 其 实, 对 邮 件 表 单, 我 们 也 可 以 用JavaScript 来 模 拟 这 样 的 响 应 页 面。 ---- 例 如, 下 面 一 段 程 序, 在 点 击 提 交 后, 浏 览 器 自 动 调 入 确 认 页 面accepted.htm。 < form method=post action= mailto:someone@company.com ENYTYPE=text/plain > Your name: < input type=text name=username > < input type=submit onBlur=response() value= 提 交 > < input type=reset value= 重 置 > < script language=JavaScript > < !-- function response(){ location.href=accepted.htm; } //-- > < /script > < /form > 四、 控 制 滚 动 条 ---- JavaScript 对 浏 览 器 各 层 次 对 象 提 供 了 丰 富 的 控 制 手 段。 比 如, 通 过window 对 象 的 方 法scroll(x,y), 我 们 能 控 制 窗 口 滚 动 条 移 动 到 指 定 的 位 置。 ---- 例 如, 下 面 的scrollwin() 程 序 实 现 垂 直 滚 动 条 的 自 动 下 移。 < script language=Javascript > < !--- function scrollwin(){ if (y==600) scroll(0,0); else{ y++; self.scroll(0,y); clearTimeout(timer); var timer=setTimeout(scrollscreen(),100); } } var y=0; document.fgColor=0xff0000; for(i=0;i< 40;i++) document.writeln(i+< br >); scrollscreen(); //--- > < /script >
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||