IE的模式对话框设计

发表于:2007-06-30来源:作者:点击数: 标签:
在 开发 Intranet Web Mis 的过程中,大家发现如果运用模式对话框,程序的流程将更为清楚。在某些情况,用户必须进行某些操作之后,才能继续后面的事情。比如:某些 安全 性要求比较高的操作,需要操作者输入口令以确认。如果实现了模式对话框,那么一个WEB
  在开发 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 属性,来获得这些属性。(注意:通过 ASP 文件后面加?,可以向 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>

原文转自:http://www.ltesting.net