wuhuisheng

ymPrompt消息提示组件js实现

原文转自:http://preview.zcool.com.cn/code/new_code/031/

ymPrompt消息提示组件

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>ymPrompt消息提示组件4.0版[2009-03-02]DEMO演示及使用简介</title>
 <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
 <script type="text/javascript" src="ymPrompt.js"></script>
 <link rel="stylesheet" id=\'skin\' type="text/css" href="skin/qq/ymPrompt.css" />
 <style type="text/css">
  
  html{
   height:100%;width:100%;
  }
  body{
   margin:5px 10px;font-size:12px;
  }
  h1{text-align:center;font-size:24px;line-height:1.5em}
  h3{
   margin:10px 0 0;padding:0;
   font-size:14px;line-height:25px
  }
  
  .help ul li{
   margin:2px 0;list-style-type:square;line-height:1.5em
  }

  .myContent{padding:50px 0;text-align:center}

  .prop{color:#00f;font-family:fixedsys}

  .table{border-collapse:collapse;border:1px solid #999;margin:5px 0}
  .table caption{background:#eee;line-height:30px;border:1px solid #999;font-weight:bold}
  .table th,.table td{border:1px solid #999;text-align:right}
  .table th{text-align:center;line-height:22px;}
  .table td.code{
   background:#eee;font-family:\'Courier New\';
   line-height:20px;font-size:12px;text-align:left;
  }

  .fmt{margin:10px 20px;line-height:1.5em}
  .mycls{font-size:18px;padding:50px 0}
  .confirm{padding:15px 20px;font-weight:bold;font-size:14px;line-height:30px}
  .confirm input {width:100%;border:1px inset #ccc}

  .customCls{
   font-weight:bold;color:#00f;font-size:20px;padding:30px 0;text-align:center
  }
  #myInput{width:90%}
 </style>
 <script type="text/javascript">
  function $(id){
   return document.getElementById(id)
  }
  //ymPrompt.setDefaultCfg({slideShowHide:false});
  ymPrompt.errorInfo({message:\'初始化弹出一!\',title:\'错误提示\',height:200,width:300,fixPosition:true,msgCls:\'mycls\',handler:function(){}})
  
  ymPrompt.alert({message:\'初始化弹出二,<br>我可以最大化最小化\',title:\'hello!\',maxBtn:true,minBtn:true,height:230,width:350});

  window.onload=function(){
   var o=$(\'chgSkin\');
   var css=$(\'skin\');
   o.selectedIndex=0;
   o.onchange=function(){
    css.href=\'skin/\'+this.options[this.selectedIndex].value+\'/ymPrompt.css\';
   }
  }

  function json2str(o){
   var arr=[];
   var fmt=function(s){
    if(typeof s==\'object\' && s!=null) return json2str(s);
    return /^(string|number)$/.test(typeof s)?"\'"+s+"\'":s;
   }
   for(var i in o) arr.push(i+\':\'+fmt(o[i]));
   return \'{<br>&nbsp;&nbsp;\'+arr.join(\',<br>&nbsp;&nbsp;\')+\'&nbsp;&nbsp;<br>}\';
  }

  //var location=document.location;
 </script>
 </head>
 <body>
 <h1>ymPrompt消息提示组件4.0版[2009-03-02]DEMO演示及使用简介</h1> 
 <h3>页面IFRAME:</h3>
 <iframe src="iframe.html" width="100%" height="60"></iframe><br />
 <table width=100%>
 <tr><td>
 <h3>页面文本:</h3>
 页面文本1<br />
 页面文本2
 </td>
 <td>
 <h3>页面Select选择框</h3> 
 <select>
  <option>下拉选项1</option>
  <option>下拉选项2</option>
  <option>下拉选项3</option>
 </select>
 </td></tr>
 </table>
 <hr/>
 <b>更换皮肤:</b><select id=\'chgSkin\'>
  <option value=\'qq\'>QQ</option>
  <option value=\'simple\'>Simple</option>
  <option value=\'simple_gray\'>SimpleGray</option>
  <option value=\'vista\'>VISTA</option>
  <option value=\'dmm-green\'>dmm-Green</option>
  <option value=\'bluebar\'>bluebar</option>
  <option value=\'black\'>black</option>
 </select>&nbsp;&nbsp;<b>修改默认配置:</b>拖动窗体的透明度:<input type=\'text\' size=10 value=\'0.8\' id=\'c2\' />&nbsp;遮罩颜色:<input type=\'text\' size=10 value=\'#00f\' id=\'c0\' />&nbsp;遮罩透明度:<input id=\'c1\' size=10 type=\'text\' value=\'0.1\' />&nbsp;<input type="button" value="修改默认配置" onclick="ymPrompt.setDefaultCfg({winAlpha:$(\'c2\').value||\'0.8\',maskAlpha:$(\'c1\').value||\'0.1\',maskAlphaColor:$(\'c0\').value||\'#00f\'});ymPrompt.alert({title:\'提示信息\',message:\'恭喜!默认配置修改成功!\'})" />
 <div style=\'display:none\' id=\'txt\'>
  在web开发中,对于浏览器默认的消息提示框(如alert,confirm等)外观无法控制,同时我们经常希望能实现一些window.open之类的弹出框,但window.open弹出框存在诸多问题,如可能被拦截,界面不美观等。
<br />为了实现更好的界面效果和控制,于是模拟系统的消息提示框及弹出窗口实现了该组件。在外观上可以通过css进行完全的控制。
 </div>
 <hr>
<table width=\'100%\' cellpadding=\'3\' cellspacing=\'0\' class=\'table\'>
 <caption>组件调用方式1(传统参数传入方式):</caption>
 <tr align=\'center\'>
  <th width=150>示例</th>
  <th>调用方法</th>
 </tr>
 <tr>
  <td><input type="button" value="信息提示" onclick="ymPrompt.alert(\'http://www.qq.com\',null,null,\'确认要提交吗?\',handler)" /></td>
  <td class=\'code\'>ymPrompt.alert(\'http://www.qq.com\',null,null,\'确认要提交吗?\',handler)</td>
 </tr>
 <tr>
  <td><input type="button" id=\'b2\' value="成功信息" onclick="ymPrompt.succeedInfo($(\'txt\').innerHTML,400,260,null,handler2)" /></td>
  <td class=\'code\'>ymPrompt.succeedInfo($(\'txt\').innerHTML,400,260,null,handler2)</td>
 </tr>
 <tr>
  <td><input type="button" value="失败信息" onclick="ymPrompt.errorInfo(\'操作失败!\',null,null,null,handler)" /></td>
  <td class=\'code\'>ymPrompt.errorInfo(\'操作失败!\',null,null,null,handler)</td>
 </tr>
 <tr>
  <td><input type="button" value="询问信息" onclick="ymPrompt.confirmInfo(\'信息确认框功能测试\',null,null,null,handler)" /></td>
  <td class=\'code\'>ymPrompt.confirmInfo(\'信息确认框功能测试\',null,null,null,handler)</td>
 </tr>
 <tr>
  <td><input type="button" value="普通弹窗" onclick="ymPrompt.win(\'<div class=\\'myContent\\'>普通弹出窗口</div>\',300,200,\'普通弹窗测试\')" /></td>
  <td class=\'code\'>ymPrompt.win(\'&lt;div class=\\'myContent\\'&gt;普通弹出窗口&lt;/div&gt;\',300,200,\'普通弹窗测试\')</td>
 </tr>
 <tr>
  <td><input type="button" value="iframe弹窗" onclick="ymPrompt.win(\'http://www.163.com\',500,300,\'网易官方网站\',handler,null,null,true);" /></td>
  <td class=\'code\'>ymPrompt.win(\'http://www.163.com\',500,300,\'网易官方网站\',handler,null,null,{id:\'a\'})</td>
 </tr>
</table>

<table width=\'100%\' cellpadding=\'3\' cellspacing=\'0\' class=\'table\'>
 <caption>组件调用方式2(JSON方式):</caption>
 <tr align=\'center\'>
  <th width=150>示例</th>
  <th>源码</th>
 </tr>
 <tr>
  <td><input type="button" value="信息提示" onclick="ymPrompt.alert({message:\'http://www.qq.com\',slideShowHide:false,title:\'确认要提交吗?\',handler:handler})" /></td>
  <td class=\'code\'>ymPrompt.alert({message:\'http://www.qq.com\',slideShowHide:false,title:\'确认要提交吗?\',handler:handler})</td>
 </tr>
 <tr>
  <td><input type="button" value="成功信息" onclick="ymPrompt.succeedInfo({message:$(\'txt\').innerHTML,width:400,height:260,handler:handler2})" /></td>
  <td class=\'code\'>ymPrompt.succeedInfo({message:$(\'txt\').innerHTML,width:400,height:260,handler:handler2})</td>
 </tr>
 <tr>
  <td><input type="button" value="失败信息" onclick="ymPrompt.errorInfo({message:\'操作失败!\',handler:handler})" /></td>
  <td class=\'code\'>ymPrompt.errorInfo({message:\'操作失败!\',handler:handler})</td>
 </tr>
 <tr>
  <td><input type="button" value="询问信息" onclick="ymPrompt.confirmInfo({message:\'信息确认框功能测试\',handler:handler})" /></td>
  <td class=\'code\'>ymPrompt.confirmInfo({message:\'信息确认框功能测试\',handler:handler})</td>
 </tr>
 <tr>
  <td><input type="button" value="普通弹窗" onclick="ymPrompt.win({message:\'普通弹出窗口\',width:300,height:200,cls:\'myContent\',title:\'普通弹窗测试\'})" /></td>
  <td class=\'code\'>ymPrompt.win({message:\'普通弹出窗口\',width:300,height:200,msgCls:\'myContent\',title:\'普通弹窗测试\'})</td>
 </tr>
 <tr>
  <td><input type="button" value="iframe弹窗" onclick="ymPrompt.win({message:\'http://www.163.com\',width:500,height:300,title:\'网易官方网站\',handler:handler,maxBtn:true,minBtn:true,iframe:true})" /></td>
  <td class=\'code\'>ymPrompt.win({message:\'http://www.163.com\',width:500,height:300,title:\'网易官方网站\',handler:handler,maxBtn:true,minBtn:true,iframe:true})</td>
 </tr>
</table>

<table width=\'100%\' cellpadding=\'3\' cellspacing=\'0\' class=\'table\'>
 <caption>其他使用方式演示:</caption>
 <tr align=\'center\'>
  <th width=150>示例</th>
  <th>源码</th>
 </tr>
 <tr>
  <td><input type="button" value="最简调用1" onclick="ymPrompt.alert()" /></td>
  <td class=\'code\'>ymPrompt.alert()</td>
 </tr>
 <tr>
  <td><input type="button" value="最简调用2" onclick="ymPrompt.alert(\'消息内容\')" /></td>
  <td class=\'code\'>ymPrompt.alert(\'消息内容\')</td>
 </tr>
 <tr>
  <td><input type="button" value="设置消息和标题" onclick="ymPrompt.alert({title:\'我的标题\',message:\'我的内容\'})" /></td>
  <td class=\'code\'>ymPrompt.alert({title:\'我的标题\',message:\'我的内容\'})</td>
 </tr>
 <tr>
  <td><input type="button" value="自定义iframe属性" onclick="ymPrompt.win({title:\'iframe模式\',fixPosition:true,maxBtn:true,minBtn:true,iframe:{id:\'myId\',name:\'myName\',src:\'http://www.baidu.com\'}})" /></td>
  <td class=\'code\'>ymPrompt.win({title:\'iframe模式\',fixPosition:true,maxBtn:true,minBtn:true,iframe:{id:\'myId\',name:\'myName\',src:\'http://www.baidu.com\'}})</td>
 </tr>
 <tr>
  <td><input type="button" value="不随滚动条滚动" onclick="ymPrompt.alert({title:\'fixPosition使用演示\',message:\'我不会随滚动条一起滚动\',fixPosition:false})" /></td>
  <td class=\'code\'>ymPrompt.alert({title:\'fixPosition使用演示\',message:\'我不会随滚动条一起滚动\',fixPosition:false})</td>
 </tr>
 <tr>
  <td><input type="button" value="可在窗口外拖动" onclick="ymPrompt.alert({title:\'dragOut使用演示\',message:\'我可以拖出到窗口可见区域以外\',dragOut:true})" /></td>
  <td class=\'code\'>ymPrompt.alert({title:\'dragOut使用演示\',message:\'我可以拖出到窗口可见区域以外\',dragOut:true})</td>
 </tr>
 <tr>
  <td><input type="button" value="程序控制关闭" onclick="ymPrompt.alert({title:\'autoClose使用演示\',message:\'程序控制关闭\',autoClose:false,handler:autoClose})" /></td>
  <td class=\'code\'>ymPrompt.alert({title:\'autoClose使用演示\',message:\'程序控制关闭\',autoClose:false,handler:autoClose})</td>
 </tr>
 <tr>
  <td><input type="button" value="无标题栏" onclick="ymPrompt.win({message:\'<br><center>无标题栏</center>\',handler:noTitlebar,btn:[[\'关闭我\']],titleBar:false})" /></td>
  <td class=\'code\'>ymPrompt.win({message:\'&lt;br&gt;&lt;center&gt;无标题栏&lt;/center&gt;\',handler:noTitlebar,btn:[[\'关闭我\']],titleBar:false})</td>
 </tr>
 <tr>
  <td><input type="button" value="无关闭按钮" onclick="ymPrompt.win({message:\'<br><center>无关闭按钮</center>\',btn: [\'OK\'],closeBtn:false})" /></td>
  <td class=\'code\'>ymPrompt.win({message:\'&lt;br&gt;&lt;center&gt;无关闭按钮&lt;/center&gt;\',btn: [\'OK\'],closeBtn:false})</td>
 </tr>
 <tr>
  <td><input type="button" value="不显示遮罩" onclick="ymPrompt.alert({message:\'不显示遮罩\',title:\'不显示遮罩\',showMask:false})" /></td>
  <td class=\'code\'>ymPrompt.alert({message:\'不显示遮罩\',title:\'不显示遮罩\',showMask:false})</td>
 </tr>
 <tr>
  <td><input type="button" value="右下角弹出" onclick="ymPrompt.alert({message:\'右下角弹出\',title:\'右下角弹出\',winPos:\'rb\'})" /></td>
  <td class=\'code\'>ymPrompt.alert({message:\'右下角弹出\',title:\'右下角弹出\',winPos:\'rb\'})</td>
 </tr>
 <tr>
  <td><input type="button" value="自定义弹出位置" onclick="ymPrompt.alert({message:\'自定义弹出位置\',title:\'右下角弹出\',winPos:[200,400]})" /></td>
  <td class=\'code\'>ymPrompt.alert({message:\'自定义弹出位置\',title:\'右下角弹出\',winPos:[200,1000]})</td>
 </tr>
 <tr>
  <td><input type="button" value="自定义按钮" onclick="ymPrompt.alert({message:\'自定义按钮\',title:\'自定义按钮测试\',handler:testHd,btn:[[\'是\',\'yes\'],[\'否\',\'no\'],[\'取消\',\'cancel\']]})" /></td>
  <td class=\'code\'>ymPrompt.win({message:\'自定义按钮\',title:\'自定义按钮测试\',handler:testHd,btn:[[\'是\',\'yes\'],[\'否\',\'no\'],[\'取消\',\'cancel\']]})</td>
 </tr>
 <tr>
  <td><input type="button" value="定义窗体透明度" onclick="ymPrompt.alert({message:\'拖动窗体时的透明度为0.5\',title:\'自定义按钮测试\',winAlpha:0.5})" /></td>
  <td class=\'code\'>ymPrompt.alert({message:\'拖动窗体时的透明度为0.5\',title:\'自定义按钮测试\',winAlpha:0.5})</td>
 </tr>
 <tr>
  <td><input type="button" value="显示窗体阴影(IE)" onclick="ymPrompt.alert({message:\'显示窗体阴影\',title:\'显示阴影\',showShadow:true})" /></td>
  <td class=\'code\'>ymPrompt.alert({message:\'显示窗体阴影\',title:\'显示阴影\',showShadow:true})</td>
 </tr>
 <tr>
  <td><input type="button" value="窗体淡入淡出" onclick="ymPrompt.alert({message:\'窗体淡入淡出\',title:\'淡入淡出\',useSlide:true,handler:slideHd})" /></td>
  <td class=\'code\'>ymPrompt.alert({message:\'窗体淡入淡出\',title:\'淡入淡出\',useSlide:true,handler:slideHd})</td>
 </tr>
 <tr>
  <td><input type="button" value="自定义淡入淡出" onclick="ymPrompt.alert({message:\'自定义淡入淡出\',title:\'淡入淡出\',useSlide:true,slideCfg:{increment:0.1,interval:100},handler:slideHd})" /></td>
  <td class=\'code\'>ymPrompt.alert({message:\'自定义淡入淡出\',title:\'淡入淡出\',useSlide:true,slideCfg:{increment:0.1,interval:100},handler:slideHd})</td>
 </tr>
 <tr>
  <td><input type="button" value="最大化最小化" onclick="ymPrompt.alert({message:\'显示最大化最小化按钮\',title:\'最大化最小化\',minBtn:true,maxBtn:true})" /></td>
  <td class=\'code\'>ymPrompt.alert({message:\'显示最大化最小化按钮\',title:\'最大化最小化\',minBtn:true,maxBtn:true})</td>
 </tr>
 <tr>
  <td><input type="button" value="自定义内容样式" onclick="ymPrompt.win({message:\'自定义内容样式\',title:\'自定义内容样式\',msgCls:\'customCls\'})" /></td>
  <td class=\'code\'>ymPrompt.win({message:\'自定义内容样式\',title:\'自定义内容样式\',msgCls:\'customCls\'})</td>
 </tr>
 <tr>
  <td><input type="button" value="允许右键" onclick="ymPrompt.alert({message:\'允许在消息框中使用右键\',title:\'允许右键\',allowRightMenu:true})" /></td>
  <td class=\'code\'>ymPrompt.alert({message:\'允许在消息框中使用右键\',title:\'允许右键\',allowRightMenu:true})</td>
 </tr>
 <tr>
  <td><input type="button" value="允许选择" onclick="ymPrompt.alert({message:\'允许选择消息框中内容\',title:\'允许选择\',allowSelect:true})" /></td>
  <td class=\'code\'>ymPrompt.alert({message:\'允许选择消息框中内容\',title:\'允许选择\',allowSelect:true})</td>
 </tr>
 <tr>
  <td><input type="button" value="模仿系统Confirm" onclick="ymPrompt.confirmInfo({icoCls:\'\',msgCls:\'confirm\',message:\'请输入您的姓名:<br><input type=\\'text\\' id=\\'myInput\\' onfocus=\\'this.select()\\' />\',title:\'请输入您的名字\',height:150,handler:getInput,autoClose:false})" /></td>
  <td class=\'code\'>ymPrompt.confirmInfo({icoCls:\'\',msgCls:\'confirm\',message:\'请输入您的姓名:&lt;br&gt;&lt;input type=\'text\' id=\'myInput\' onfocus=\'this.select()\' /&gt;\',title:\'请输入您的名字\',height:150,handler:getInput,autoClose:false})" /></td>
 </tr>
</table>

<table width=\'100%\' cellpadding=\'3\' cellspacing=\'0\' class=\'table\'>
 <caption>组件方式及属性调用演示:</caption>
 <tr align=\'center\'>
  <th width=150>示例</th>
  <th>源码</th>
 </tr>
 <tr>
  <td><input type="button" value="属性读取" onclick="ymPrompt.win(\'<div class="fmt">版本号:\'+ymPrompt.version+\'<br>发布日期:\'+ymPrompt.pubDate+\'<br>组件当前配置信息:\'+json2str(ymPrompt.cfg)+\'</div>\',250,500)" /></td>
  <td class=\'code\'>ymPrompt.win(\'&lt;div class="fmt"&gt;版本号:\'+ymPrompt.version+\'&lt;br&gt;发布日期:\'+ymPrompt.pubDate+\'&lt;br&gt;组件当前配置信息:\'+json2str(ymPrompt.cfg)+\'&lt;/div&gt;\',250,500)</td>
 </tr>
 <tr>
  <td><input type="button" value="getPage测试" onclick="ymPrompt.win({message:\'iframe.html\',width:500,height:300,title:\'getPage测试\',handler:handlerIframe,autoClose:false,iframe:true})" /></td>
  <td class=\'code\'>ymPrompt.win({message:\'iframe.html\',width:500,height:300,title:\'getPage测试\',handler:handlerIframe,autoClose:false,iframe:true})</td>
 </tr>
 <tr>
  <td><input type="button" value="resizeWin测试" onclick="ymPrompt.alert({message:\'一秒钟后我的大小改为[400,300]\',height:200,width:250});setTimeout(function(){ymPrompt.resizeWin(400,300)},1000);" /></td>
  <td class=\'code\'>ymPrompt.alert({message:\'一秒钟后我的大小改为[400,300]\',height:200,width:250});<br>setTimeout(function(){ymPrompt.resizeWin(400,300)},1000);</td>
 </tr>
 <tr>
  <td><input type="button" value="doHandler测试" onclick="ymPrompt.alert({message:\'两秒钟后自动点击确定按钮\',handler:handler});setTimeout(function(){ymPrompt.doHandler(\'ok\')},1000);" /></td>
  <td class=\'code\'>ymPrompt.alert({message:\'两秒钟后自动点击确定按钮\',handler:handler});<br>setTimeout(function(){ymPrompt.doHandler(\'ok\')},1000);</td>
 </tr>
 <tr>
  <td><input type="button" value="getButtons测试" onclick="ymPrompt.alert({message:\'点击确定显示按钮的内容\',autoClose:false,btn:[[\'是\',\'yes\'],[\'否\',\'no\']],handler:getButtons})" /></td>
  <td class=\'code\'>ymPrompt.alert({message:\'点击确定显示按钮的内容\',autoClose:false,btn:[[\'是\',\'yes\'],[\'否\',\'no\']],handler:getButtons})</td>
 </tr>
 <tr>
  <td><input type="button" value="模拟qq消息" onclick="ymPrompt.alert({message:\'悬浮右下角,模拟qq\',fixPosition:true,winPos:\'rb\',showMask:false})" /></td>
  <td class=\'code\'>ymPrompt.alert({message:\'悬浮右下角,模拟qq\',fixPosition:true,winPos:\'rb\',showMask:false})</td>
 </tr>
 <tr>
  <td><input type="button" value="窗口状态函数" onclick="ymPrompt.alert({message:\'窗口状态操作\',width:400,autoClose:false,btn:[[\'最大化\',\'max\'],[\'最小化\',\'min\'],[\'正常态\',\'normal\'],[\'关闭\',\'close\']],handler:stateHd})" /></td>
  <td class=\'code\'>ymPrompt.alert({message:\'窗口状态控制\',width:400,autoClose:false,btn:[[\'最大化\',\'max\'],[\'最小化\',\'min\'],[\'正常态\',\'normal\'],[\'关闭\',\'close\']],handler:stateHd})</td>
 </tr>
 <tr>
  <td><input type="button" value="英文化" onclick="en();ymPrompt.alert({message:\'英文化成功\'})" /></td>
  <td class=\'code\'>en();ymPrompt.alert({message:\'英文化成功\'})</td>
 </tr>
 <tr>
  <td><input type="button" value="中文化" onclick="cn();ymPrompt.alert({message:\'中文化成功\'})" /></td>
  <td class=\'code\'>cn();ymPrompt.alert({message:\'中文化成功\'})</td>
 </tr>
</table>
<hr>
 <h3>调用方法及参数说明</h3>
 <ol class=\'help\'>
  <li>在页面中引入ymPrompt.js。如:&lt;script type="text/javascript" src="ymPrompt.js"&gt;&lt;/script&gt;</li>
  <li>在页面中引入对应的皮肤文件的CSS,如:&lt;link rel="stylesheet" type="text/css" href="skin/qq/ymPrompt.css" /&gt;</li>
  <li>自定义组件的默认配置信息(<span style=\'color:#f00\'>此步骤可选</span>,该方法可以在任意时间调用)
   <br />页面的js中通过ymPrompt.setDefaultCfg(cfg)方法修改组件部分或全部的默认属性。
   <br />如:ymPrompt.setDefaultCfg({maskAlpha:0.2,maskAlphaColor:\'#00f\'})
   <br />
   <br />组件的默认配置(对于没有设定的项将采用该配置项的默认值):
     <br />{
   <br />&nbsp;&nbsp;&nbsp;message: \'内容\', //消息框按钮
   <br />&nbsp;&nbsp;&nbsp;width: 300,   //宽
   <br />&nbsp;&nbsp;&nbsp;height: 185,  //高
   <br />&nbsp;&nbsp;&nbsp;title: \'标题\',  //消息框标题
   <br />&nbsp;&nbsp;&nbsp;handler: function() {}, //回调事件
   <br />&nbsp;&nbsp;&nbsp;maskAlphaColor: \'#000\', //遮罩透明色
   <br />&nbsp;&nbsp;&nbsp;maskAlpha: 0.1,  //遮罩透明度
   <br />
   <br />&nbsp;&nbsp;&nbsp;iframe: false,  //iframe模式
   <br />&nbsp;&nbsp;&nbsp;icoCls: \'\',   //图标的样式
   <br />&nbsp;&nbsp;&nbsp;btn: null,   //按钮配置
   <br />&nbsp;&nbsp;&nbsp;autoClose: true,  //点击关闭、确定等按钮后自动关闭
   <br />&nbsp;&nbsp;&nbsp;fixPosition: true,  //随滚动条滚动
   <br />&nbsp;&nbsp;&nbsp;dragOut: false,   //不允许拖出窗体范围
   <br />&nbsp;&nbsp;&nbsp;titleBar: true,   //显示标题栏
   <br />&nbsp;&nbsp;&nbsp;showMask: true,   //显示遮罩
   <br />&nbsp;&nbsp;&nbsp;winPos: \'c\',  //在页面中间显示
   <br />&nbsp;&nbsp;&nbsp;winAlpha:0.8,  //拖动窗体时窗体的透明度
   <br />&nbsp;&nbsp;&nbsp;closeBtn:true,  //是否显示关闭按钮
   <br />&nbsp;&nbsp;&nbsp;showShadow:false, //不显示阴影,只对IE有效
   <br />&nbsp;&nbsp;&nbsp;useSlide:false,  //不使用淡入淡出
   <br />&nbsp;&nbsp;&nbsp;slideCfg:{increment:0.3,interval:50}, //淡入淡出配置
   <br /><br />&nbsp;&nbsp;&nbsp;//按钮文本,可通过自定义这些属性实现本地化
   <br />&nbsp;&nbsp;&nbsp;closeTxt: \'关闭\',
   <br />&nbsp;&nbsp;&nbsp;okTxt:\' 确 定 \',
   <br />&nbsp;&nbsp;&nbsp;cancelTxt:\' 取 消 \', 
   <br />&nbsp;&nbsp;&nbsp;msgCls:\'ym-content\'  //消息内容的样式
   <br />&nbsp;&nbsp;&nbsp;minBtn:false,   //不显示最小化按钮 
   <br />&nbsp;&nbsp;&nbsp;minTxt:\'最小化\',
   <br />&nbsp;&nbsp;&nbsp;maxBtn:false,   //不显示最大化按钮
   <br />&nbsp;&nbsp;&nbsp;maxTxt:\'最大化\'  
   <br />&nbsp;&nbsp;&nbsp;allowSelect:false,  //是否允许选择消息框内容,默认不允许
   <br />&nbsp;&nbsp;&nbsp;allowRightMenu:false //是否允许在消息框使用右键,默认不允许
     <br />}
  </li>
  <li>根据您的需要调用相应的消息函数(两种参数传入方式):
   <ul>
    <li>ymPrompt.alert(参数) //消息提示类型</li>
    <li>ymPrompt.succeedInfo(参数) //成功信息类型</li>
    <li>ymPrompt.errorInfo(参数)  //错误信息类型</li>
    <li>ymPrompt.confirmInfo(参数) //询问消息类型<br /><br /></li>
    <li>ymPrompt.win(参数) //自定义窗口类型 </li>
   </ul>

   <br /><b>参数传入方式包含两种:</b>
   <ul>
    <li>第一种即传统的参数传入,按照顺序传入相应的参数值即可(一定要按照顺序),对于不需要设定的值请传入null。如ymPrompt.alert(\'内容\',null,null,\'标题\')
    <br />参数顺序上面的默认配置中参数顺序一致<br /><br />
    </li>
    <li>(推荐)第二种即JSON的传入方式,需要指定字段名,没有顺序,根据需要设定相关属性。如ymPrompt.alert({title:\'标题\',message:\'内容\'})</li>
   </ul>

   <br /><b>五个方法的参数意义完全相同(所有参数均为可选,不传入则使用默认参数值),具体含义如下: </b>
   <ul>
    <li><strong>message:</strong>消息组件要显示的内容,默认为“内容”。</li>
    <li><strong>width:</strong>消息框的宽度,默认为300。</li>
    <li><strong>height:</strong>消息框的高度,默认为185。</li>
    <li><strong>title:</strong>消息组件标题,默认为“标题”</li>
    <li><strong>handler:</strong>回调函数。当确定/取消/关闭按钮被点击时会触发该函数并传入点击的按钮标识。如ok代表确定,cancel代表取消,close代表关闭</li>
    <li><strong>maskAlphaColor:</strong>遮罩的颜色,默认为黑色。 </li>
    <li><strong>maskAlpha:</strong>遮罩的透明度,默认为0.1。<br/><br/> </li>
    <li><strong>fixPosition:</strong>设定是否弹出框随滚动条一起浮动,保持在屏幕的固定位置,默认为true </li>
    <li><strong>dragOut:</strong>设定是否允许拖出屏幕范围,默认为false。 </li>
    <li><strong>autoClose:</strong>设定用户点击窗口中按钮后自动关闭窗口,默认为true(设定为false后程序中可以通过调用close方法关闭)。</li>
    <li><strong>titleBar:</strong>是否显示标题栏,默认显示。注意,如果没有标题栏需要自己在程序中控制关闭。</li>
    <li><strong>showMask:</strong>是否显示遮罩层,默认为true</li>
    <li><strong>winPos:</strong>弹出窗口的位置,支持8种内置位置(c,l,t,r,b,lt,rt,lb,rb)及自定义窗口坐标,默认为c。
    <br />&nbsp;&nbsp;各参数意义:c:页面中间,l:页面左侧,t:页面顶部,r:页面右侧,b:页面顶部,lt:左上角,rt:右上角,lb:左下角,rb:右下角</li>
    <li><strong>winAlpha:</strong>弹出窗体拖动时的透明度,默认为0.8
    <br /><br />//以下三个参数主要用于win方法(当然你也可以通过设定这些覆盖前面四个消息类型的默认属性)。
    </li>
    <li><strong>iframe:</strong>是否使用iframe方法加载内容,该属性如果为true或者object,组件则尝试将message内容作为url进行加载(<span style=\'color:#f00\'>如果属性值为一个object,则将object的内容添加为iframe的属性,如iframe:{id:\'myId\',name:\'myName\',src:\'http://www.baidu.com\'}则iframe的id为myId,name为myName,src为http://www.baidu.com</span>)。默认为false。 </li>
    <li><strong>icoCls:</strong>图标类型。传入的内容为className,具体写法可以参考ymprompt.css中对图标的定义方式。默认为空。 </li>
    <li><strong>btn:</strong>按钮定义。传入的是数组形式。每个按钮的格式为[\'按钮文本\',\'按钮标识\'],<br>如[[\'确定\',\'ok\'],[\'取消\',\'cancel\'],[\'关闭\',\'close\']]等。
    <br />注意单个按钮应该是这样的:[[\'确定\',\'ok\']]</li>
    <li><strong>closeBtn:</strong>是否显示关闭按钮,默认为true(显示)。<br /><br /></li>
    <li><strong>showShadow:</strong>是否启用弹出框阴影效果(IE Only),默认为false</li>
    <li><strong>useSlide:</strong>f是否启用弹出框的渐显渐隐效果,默认为false</li>
    <li><strong>slideCfg:</strong>渐变效果的配置信息,参数格式为object,属性包括incerment:透明度每次增加的值,interval:变化的速度。例如:{incerment:0.3,interval:50}。该参数仅在useSlide为true时有效
    <br /><br />//以下参数可用于对组件语言本地化,如用于英文等系统中</li>
    <li><strong>okTxt:</strong>确定按钮的文本描述,默认为“确定”</li>
    <li><strong>cancelTxt:</strong>取消按钮的文本描述,默认为“取消”</li>
    <li><strong>closeTxt:</strong>关闭按钮的文本描述(鼠标放在关闭按钮上时显示),默认为“关闭”</li>
 
    <li><strong>minTxt:</strong>最小化按钮的文本描述,默认为“最小化”</li>
    <li><strong>maxTxt:</strong>最大化按钮的文本描述,默认为“最大化”<br /><br /></li>

    <li><strong>minBtn:</strong>是否显示最小化按钮,默认为false</li>
    <li><strong>maxBtn:</strong>是否显示最大化按钮,默认为false<br /><br /></li>

    <li><strong>allowSelect:</strong>是否允许选择消息框内容,默认为false</li>
    <li><strong>allowRightMenu:</strong>是否允许在消息框中使用右键,默认为false</li>
   </ul>
  </li>
  <li><strong>操作接口:</strong>
 <br/><br/>
 <dl>
  <dt><strong>属性:</strong></dt>
 <dd><span class=\'prop\'>version:</span>当前版本号 如:alert(ymPrompt.version)</dd>
 <dd><span class=\'prop\'>pubDate:</span>当前版本的发布日期 如:alert(ymPrompt.pubDate);</dd>
  <dd><span class=\'prop\'>&nbsp;&nbsp;&nbsp;cfg:</span>组件的当前的默认配置</dd>

 <dt><strong>方法:</strong></dt>
 <dd><span class=\'prop\'>setDefaultCfg(cfg):</span>设定组件的默认属性,设定后的所有弹出均默认采用cfg中的设置。<br />
  如:ymPrompt.setDefaultCfg({maskAlpha:0.2,maskAlphaColor:\'#00f\'}); //设定遮罩层颜色为蓝色,透明度0.2<br /><br /><dd>

 <dd><span class=\'prop\'>getPage():</span>在iframe窗口模式下,获取到iframe的dom对象。<br />
  如:alert(ymPrompt.getPage().contentWindow.document.body.outerHTML); //获取iframe页面的html内容<br /><br /><dd>

 <dd><span class=\'prop\'>resizeWin(w,h):</span>通过程序动态修改窗口的大小。参数:w:宽度,h:高度<br />
  如:ymPrompt.resizeWin(400,300); //修改弹出框宽度为400px,高度为300px<br /><br /><dd>
 
 <dd><span class=\'prop\'>doHandler(sign,autoClose):</span>模拟触发某个按钮的点击事件。参数sign:传给回调函数的标识,autoClose:是否自动关闭窗口(默认采用全局配置)<br />
  如:ymPrompt.doHandler(\'ok\',false); //触发确定按钮的点击事件,并且执行完回调函数后不关闭窗口<br /><br /><dd>
 <dd><span class=\'prop\'>getButtons():</span>获取当前弹出窗口的所有按钮对象,返回结果是一个对象集合(数组)。<br />
  如:var btnID=ymPrompt.getButtons()[0].id; //获取第一个按钮的id<br /><br /><dd>
 <dd><span class=\'prop\'>close():</span>关闭当前弹出的窗口
  如:ymPrompt.close()<br /><br /><dd>
 <dd><span class=\'prop\'>max():</span>最大化弹出窗口。<br /><br /><dd>
 <dd><span class=\'prop\'>min():</span>最小化弹出窗口<br /><br /><dd>
 <dd><span class=\'prop\'>normal():</span>窗口普通弹出状态<br /><dd>
 </dl>
 </li>
  <li><strong>其他说明:</strong>如果觉得“对象.方法”的调用方式比较麻烦,可以采用如下方式简化调用:
   <br />在调用之前设定var Alert=ymPrompt.alert。之后就可以使用Alert()的方式进行调用。
  </li>
 </ol>
 <script type="text/javascript">
  function cn(){
   ymPrompt.setDefaultCfg({title:\'标题\', message:"内容",okTxt:\' 确 定 \',cancelTxt:\' 取 消 \',closeTxt:\'关闭\',minTxt:\'最小化\',maxTxt:\'最大化\'});
  }
  function en(){
   ymPrompt.setDefaultCfg({title:\'Default Title\', message:"Default Message",okTxt:\' OK \',cancelTxt:\' Cancel \',closeTxt:\'Close\',minTxt:\'Minimize\',maxTxt:\'Maximize\'});
  }
  
  function slideHd(){
   ymPrompt.alert(\'看到效果了吗?\');
  }

  function getInput(tp){
   if(tp!=\'ok\') return ymPrompt.close();
   var v=$(\'myInput\').value;
   if(v==\'\')
    alert(\'请输入您的名字!\')
   else{
    alert(\'你输入的值为:\'+v)
    ymPrompt.close();
   }
  }
  function getButtons(){
   var btnObjs=ymPrompt.getButtons(),arr=[];
   for(var i=0;i<btnObjs.length;i++)
    arr.push(\'按钮\'+(i+1)+"内容:"+document.createElement("DIV").appendChild(btnObjs[i].cloneNode(true)).parentNode.innerHTML);
   alert(arr.join(\'\n\n\'));
   ymPrompt.close();
  }
  function autoClose(){
   alert(\'三秒钟自动关闭\');
   setTimeout(function(){ymPrompt.close()},3000)
  }
  function handlerIframe(){
   alert(ymPrompt.getPage().contentWindow.document.body.innerHTML);
   ymPrompt.close();
  }
  function noTitlebar(){
   alert(\'提示:除了可以通过增加按钮来控制,还可以在子页面中调用该页面的ymPrompt.close方法来关闭\');
  }
  var Alert=ymPrompt.alert;
  function cancelFn(){
   Alert("点击了\'取消\'按钮");
  }
  function okFn(){
   Alert("点击了\'确定\'按钮");
  }
  function closeFn(){
   Alert("点击了\'关闭\'按钮");
  }
  function handler(tp){
   if(tp==\'ok\'){
    okFn();
   }
   if(tp==\'cancel\'){
    cancelFn();
   }
   if(tp==\'close\'){
    closeFn()
   }
  }
  function testHd(tp){
   Alert(\'你点击的按钮的标志为:\'+tp);
  }
  function handler2(tp){
   if(tp==\'ok\'){
    ymPrompt.confirmInfo("保存成功!是否打印税票?",null,null,"问询提示",function(tp){tp==\'ok\'?ticketPrevie("print"):loadImposeInfo()})
   }
   if(tp==\'cancel\'){
    cancelFn();
   }
   if(tp==\'close\'){
    closeFn()
   }
  }
  function ticketPrevie(xx){
   Alert(xx)
  }
  function loadImposeInfo(){
   Alert("exit")
  }

  function stateHd(tp){
   ymPrompt[tp]();
  }
 </script>
 </body>
</html>

 

 

分类:

技术点:

相关文章:

猜你喜欢
相关资源
相似解决方案