|
IE4 的 模 式 对 话 框 设 计 在 开 发 Intranet Web Mis 的 过 程 中 , 大 家 发 现 如 果 运 用 模 式 对 话 框 , 程 序 的 流 程 将 更 为 清 楚 。 在 某 些 情 况 , 用 户 必 须 进 行 某 些 操 作 之 后 , 才 能 继 续 后 面 的 事 情 。 比 如 : 某 些 安 全 性 要 求 比 较 高 的 操 作 , 需 要 操 作 者 输 入 口 令 以 确 认 。 如 果 实 现 了 模 式 对 话 框 , 那 么 一 个 WEB 程 序 看 上 去 更 象 一 个 VB 或 DELPHI 开 发 的 应用 程 序 。 结 合 运 用 ASP 和 DHTML , 可 以 实 现 模 式 对 话 框 。 本 文 以 msgbox 的 实 现 为 例 。 客 户 端 VBScript 有 一 个 函 数 Msgbox() ( 以 及 衍 生 出 来 的 Alert()、confirm() ) 。 我 们 常 常 需 要 msgbox 显 示 一 些 简 要 提 示 或 是 简 单 选 择 , 但 是 遗 憾 的 是 , Msgbox 功 能 有 巨 大 缺 陷 。如 果 是 中 文 句 子 , 在 西 文 系 统 下 , 只 怕 只 能 看 到 一 串 ???? ?即 使 安 装 了 中 文 平 台 ( 如 南 极 星 ) 。 客 户 端 Jscript 类 似 的 函 数Alert() 和 confirm() , 当 然 也 存 在 着 相 同 的 问 题 。 幸 好 , 在 微 软 DHTML 说 明 书 找 到 了 一 个 函 数 : showModalDialog() 。 结 合 DHTML 和 ASP 便 可 实 现 MsgBox 的 功 能 , 并 且 无 操 作 平 台 CODEPAGE 不 同 的 烦 恼 。 <<<< showModalDialog 语 法 >>>> variant = object.showModalDialog(sURL [, vArguments [, sFeatures]]) 参 数 描 述
sURL 指 定 要 装 载 和 显 示 的 文 件 的 URL 地 址
vArguments 可 选 . Variant 变 量 在 显 示 文 件 时 设 定 的 参 数 . 这 个 参 数 可 以 传 送 包 括 数 组 在 内 的 数 据 对 话 框 通 过 访 问 window 对 象 的 dialogArguments 属 性 , 来 获 得 这 些 属 性 。 ( 注 意 : 通 过 A S P 文 件 后 面 加 ? , 可 以 向 ASP 发 送 参 数 )
sFeatures 可 选 。 指 定 对 话 框 窗 体 的 参 数 , 可 有 下 列 内 容 。 语 法 描 述
dialogWidth:number 窗 口 宽 度
dialogHeight:number 窗 口 高 度
dialogTop:number 窗 口 上 部 坐 标
dialogLeft:number 窗 口 右 部 坐 标
center:{yes | no | 1 | 0 } 是否居中(缺省为yes)
<<<< 以 下 为 msg.asp 源 码 >>>> <%@ LANGUAGE="VBSCRIPT" %> <% dim title dim msg dim itype title=request("title") msg=request("msg") itype=request("type") %>
<html> <head> <meta NAME="GENERATOR" Content="Microsoft FrontPage 3.0"> <meta HTTP-EQUIV="Content-Type" content="text/html; charset=gb_2312-80"> <title><%=title%></title> </head> <body language="javascript" onload="window.returnValue=0" topmargin="0" leftmargin="0" bgcolor="#000000" text="#FFFF00"> <table border="0" cellpadding="0" width="100%" cellspacing="0"> <tr> <td width="100%"><p align="center"><br><%=msg%><br> <br> <%if itype=0 then response.write "<input type='button' value='确 定' name='cmdOk' onclick='window.returnValue=1;window.close()'>" elseif itype=1 then response.write "<input type='button' value='确 定' name='cmdOk' onclick='window.returnValue=1;window.close()'> " response.write "<input type='button' value='取 消' name='cmdCANCEL' onclick='window.returnValue=0;window.close()'>" elseif itype=2 then response.write "<input type='button' value=' 是 ' name='cmdYes' onclick='window.returnValue=1;window.close()'> " response.write "<input type='button' value=' 否 ' name='cmdNo' onclick='window.returnValue=0;window.close()'>" end if%> </td> </tr> </table> </body> </html>
<<<< 调 用 范 例 >>>> <html> <head> <meta NAME="GENERATOR" Content="Microsoft FrontPage 3.0"> <meta HTTP-EQUIV="Content-Type" content="text/html; charset=gb_2312-80"> <title>Document Title</title> </head> <script langauge="javascript"> function message(title,msg,type) { var ret=0; ret=showModalDialog( "msg.asp?itle="+title+"&msg="+msg+"&type="+type, "","dialogWidth:30;dialogHeight:8;center:1") return ret } // 此 函 数 将 调 用 方 法 简 化 , 使 它 在 调 用 方 法 上 看 起 来 更 象 系 统 的 MSGBOX </script> <body> <form method="POST" action="../_vti_bin/shtml.dll/msg/test.asp" webbot-action="--WEBBOT-SELF--"> <p><input type="button" value="test" name="cmdTest1" language="javascript" onclick="alert(message('title','message is here',2))"></p> </form> </body> </html> |