您的位置:寻梦网首页编程乐园ASP编程ASP教程及使用技巧

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()'>&nbsp;&nbsp;"

        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()'>&nbsp;&nbsp;"

        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>