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> '+arr.join(',<br> ')+' <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> <b>修改默认配置:</b>拖动窗体的透明度:<input type='text' size=10 value='0.8' id='c2' /> 遮罩颜色:<input type='text' size=10 value='#00f' id='c0' /> 遮罩透明度:<input id='c1' size=10 type='text' value='0.1' /> <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('<div class=\'myContent\'>普通弹出窗口</div>',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:'<br><center>无标题栏</center>',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:'<br><center>无关闭按钮</center>',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:'请输入您的姓名:<br><input type='text' id='myInput' onfocus='this.select()' />',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('<div class="fmt">版本号:'+ymPrompt.version+'<br>发布日期:'+ymPrompt.pubDate+'<br>组件当前配置信息:'+json2str(ymPrompt.cfg)+'</div>',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。如:<script type="text/javascript" src="ymPrompt.js"></script></li>
<li>在页面中引入对应的皮肤文件的CSS,如:<link rel="stylesheet" type="text/css" href="skin/qq/ymPrompt.css" /></li>
<li>自定义组件的默认配置信息(<span style='color:#f00'>此步骤可选</span>,该方法可以在任意时间调用)
<br />页面的js中通过ymPrompt.setDefaultCfg(cfg)方法修改组件部分或全部的默认属性。
<br />如:ymPrompt.setDefaultCfg({maskAlpha:0.2,maskAlphaColor:'#00f'})
<br />
<br />组件的默认配置(对于没有设定的项将采用该配置项的默认值):
<br />{
<br /> message: '内容', //消息框按钮
<br /> width: 300, //宽
<br /> height: 185, //高
<br /> title: '标题', //消息框标题
<br /> handler: function() {}, //回调事件
<br /> maskAlphaColor: '#000', //遮罩透明色
<br /> maskAlpha: 0.1, //遮罩透明度
<br />
<br /> iframe: false, //iframe模式
<br /> icoCls: '', //图标的样式
<br /> btn: null, //按钮配置
<br /> autoClose: true, //点击关闭、确定等按钮后自动关闭
<br /> fixPosition: true, //随滚动条滚动
<br /> dragOut: false, //不允许拖出窗体范围
<br /> titleBar: true, //显示标题栏
<br /> showMask: true, //显示遮罩
<br /> winPos: 'c', //在页面中间显示
<br /> winAlpha:0.8, //拖动窗体时窗体的透明度
<br /> closeBtn:true, //是否显示关闭按钮
<br /> showShadow:false, //不显示阴影,只对IE有效
<br /> useSlide:false, //不使用淡入淡出
<br /> slideCfg:{increment:0.3,interval:50}, //淡入淡出配置
<br /><br /> //按钮文本,可通过自定义这些属性实现本地化
<br /> closeTxt: '关闭',
<br /> okTxt:' 确 定 ',
<br /> cancelTxt:' 取 消 ',
<br /> msgCls:'ym-content' //消息内容的样式
<br /> minBtn:false, //不显示最小化按钮
<br /> minTxt:'最小化',
<br /> maxBtn:false, //不显示最大化按钮
<br /> maxTxt:'最大化'
<br /> allowSelect:false, //是否允许选择消息框内容,默认不允许
<br /> 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 /> 各参数意义: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'> 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>