1. 功能

    以富 UI 体验来展现对话框的纯 js 组件

    MessageBox 提供提醒框、对话框、内容输入对话框和进度条四种 UI 展现和回调处理

  2. 参数

    参数名 参数类型 是否必须 默认值 描述
    type java.lang.String iframe 可选 iframe|frame
    page java.lang.String 页面名称
    listener java.lang.String 需要执行的监听事件
    params java.lang.String URL 请求参数,Get 方式。如&a=b&c=d
    subsys java.lang.String 子系统编码
  3. 调用 API

    方法 MessageBox.alert(title,msg,fn,buttons,showMinMax)
    说明 显示消息警示框
    参数 title 弹出框标题
    msg 弹出提示框内容
    fn 弹出提示框点击按钮后的回调函数
    buttons 设置显示哪些按钮,该参数不传默认为显示“确定”按钮
    content 信息提示内容
    showMinMax 设置是否显示最大最小化按钮,默认不显示
    图示
    您输入的信息含有非法字符!
    最可能的原因是:
    ·在地址中可能存在键入错误。
    ·当您点击某个链接时,它可能已过期。
    方法 MessageBox.success(title,msg,fn,buttons,showMinMax)
    说明 显示成功提示框
    参数 title 弹出框标题
    msg 弹出提示框内容
    fn 弹出提示框点击按钮后的回调函数
    content 信息提示内容
    buttons 设置显示哪些按钮,该参数不传默认为显示“确定”按钮
    showMinMax 设置是否显示最大最小化按钮,默认不显示
    图示
    业务办理成功
    客户姓名:Jet Li
    年龄:49
    出生年月:1963-04
    手机号码:13511223343
    邮箱地址:Jet@Expendables.com
    方法 MessageBox.error(title,msg,fn,buttons,showMinMax)
    说明 显示失败提示框
    参数 title 弹出框标题
    msg 信息提示标题
    fn 弹出提示框点击按钮后的回调函数
    buttons 设置显示哪些按钮,该参数不传默认为显示“确定”按钮
    content 信息提示内容
    detail 信息提示详情
    showMinMax 设置是否显示最大最小化按钮,默认不显示
    图示
    您输入的信息含有非法字符!
    最可能的原因是:
    ·在地址中可能存在键入错误。
    ·当您点击某个链接时,它可能已过期。
    org.apache.tapestry.ApplicationRuntimeException: Unable to invoke method queryMemberInfo on com.ailk.csview.group.changememelement.BaseInfo$Enhance_1370@4dcf78[csserv.group.changememelement.BaseInfo]: CRM_USER_117:该服务号码[123]用户信息不存在!
    at org.apache.tapestry.listener.ListenerMap.invokeTargetMethod(ListenerMap.java:276)
    at org.apache.tapestry.listener.ListenerMap.access$100(ListenerMap.java:45)
    at org.apache.tapestry.listener.ListenerMap$SyntheticListener.invoke(ListenerMap.java:96)
    at org.apache.tapestry.listener.ListenerMap$SyntheticListener.actionTriggered(ListenerMap.java:101)
    at com.ailk.web.view.component.base.AjaxService.service(AjaxService.java:126)
    at org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:887)
    at org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:206)
    at com.ailk.web.servlet.PageServlet.doService(PageServlet.java:92)
    at org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java:370)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.ailk.web.BaseFilter.doFilter(BaseFilter.java:110)
    at com.ailk.web.servlet.SessionVerifyFilter.doFilter(SessionVerifyFilter.java:48)
    at com.ailk.biz.view.BizSessionFilter.doFilter(BizSessionFilter.java:50)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.ailk.sna.filter.SessionFilter.doFilter(SessionFilter.java:58)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: com.ailk.common.BaseException: CRM_USER_117:该服务号码[123]用户信息不存在!
    at com.ailk.common.util.Utility.error(Utility.java:59)
    at com.ailk.bizview.exception.CSViewException.uerror(CSViewException.java:136)
    at com.ailk.bizview.exception.CSViewException.apperr(CSViewException.java:38)
    at com.ailk.csview.group.common.base.GroupBasePage.getMemberInfo(GroupBasePage.java:319)
    at com.ailk.csview.group.changememelement.BaseInfo.queryMemberInfo(BaseInfo.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tapestry.listener.ListenerMap.invokeTargetMethod(ListenerMap.java:249)
    ... 30 more
    
    方法 MessageBox.confirm(title,msg,fn,buttons,showMinMax)
    说明 显示消息对话框
    参数 title 弹出框标题
    msg 弹出提示框内容
    fn 弹出提示框点击按钮后的回调函数
    buttons 设置显示哪些按钮,该参数不传默认为显示“确定”和“取消”按钮
    content 信息提示内容
    showMinMax 设置是否显示最大最小化按钮,默认不显示
    图示
    确定要删除以下内容吗?
    客户姓名:Jet Li
    年龄:49
    出生年月:1963-04
    手机号码:13511223343
    邮箱地址:Jet@Expendables.com
    方法 MessageBox.prompt(title,msg,fn,buttons,showMinMax)
    说明 显示消息提示框
    参数 title 弹出框标题
    msg 弹出提示框内容
    fn 弹出提示框点击按钮后的回调函数
    buttons 设置显示哪些按钮,该参数不传默认为显示“确定”和“取消”按钮
    showMinMax 设置是否显示最大最小化按钮,默认不显示
    图示
    • 请输入姓名:
    方法 MessageBox.progress(msg,fn)
    说明 显示消息提示框
    参数 msg 进度条说明文字
    fn 弹出提示框点击按钮后的回调函数
    图示
    图片下载中...
    30.00%
    方法 MessageBox.updateProgress(percent,valText)
    说明 更新进度条进度百分比
    参数 percent 进度条显示的百分比小数,1为百分之百
    valText 进度条上的进度说明文字
    图示
    正在更新 Expendables.mkv
    30.00%

    【注】buttons 为可选参数,不写 buttons 参数时,显示默认的按钮。如:MessageBox.prompt(title,msg,fn);

  4. 示例

    1. HTML代码

      <script language="javascript">
      //<!--
      $(document).ready(function(){
      
      	//alert示范例子
      	MessageBox.alert("提示信息","提示信息",function(btn){
      		alert(btn);
      	});
      	return;
      	//alert 自定义按钮
      	MessageBox.alert("提示信息","提示信息",function(btn){
      		alert(btn);
      	},{ok:"确定按钮",cancel:"取消按钮",ext0:"扩展按钮0,refresh"});
      	return;
      
      	//confirm示范例子
      	MessageBox.confirm("提示信息","提示信息",function(btn){
      		alert(btn);
      	});
      	//confirm 自定义按钮
      	MessageBox.confirm("提示信息","提示信息",function(btn){
      		alert(btn);
      	},{ext1:"操作1",ext2:"操作2"});
      	return;
      
      	MessageBox.prompt("提示信息","请输入姓名:",function(btn,val){
      		alert(btn + "|" + val);
      	});
      
      	return;
      
      	 MessageBox.progress("加载文件");
      	   var f = function(v){
      		return function(){
      		    if(v == 11){
      			MessageBox.hide();
      		    }else{
      			MessageBox.updateProgress(v/10, '正在载入10项中的第' + v + '项...');
      		    }
      	       };
      	   };
      	   for(var i = 1; i < 12; i++){
      	       setTimeout(f(i), i*1000);
      	   }
      	return;
      });
      -->
      </script>