Discuz之showDialog函数详解【原创】

Common.js

[javascript]
function showDialog(msg, mode, t, func, cover) {
cover = isUndefined(cover) ? (mode == 'info' ? 0 : 1) : cover;
mode = in_array(mode, ['confirm', 'notice', 'info']) ? mode : 'alert';
var menuid = 'fwin_dialog';
var menuObj = $(menuid);

if(menuObj) hideMenu('fwin_dialog', 'dialog');
menuObj = document.createElement('div');
menuObj.style.display = 'none';
menuObj.className = 'fwinmask';
menuObj.id = menuid;
$('append_parent').appendChild(menuObj);
var s = '<table cellpadding="0" cellspacing="0" class="fwin"><tr><td class="t_l"></td><td class="t_c"></td><td class="t_r"></td></tr><tr><td class="m_l"></td><td class="m_c"><div class="fcontent' + (mode == 'info' ? '' : ' alert_win') + '"><h3 class="float_ctrl"><em>';
s += t ? t : '提示信息';
s += '</em><span><a href="javascript:;" class="float_close" onclick="hideMenu(\'' + menuid + '\', \'dialog\')" title="关闭">关闭</a></span></h3>';
if(mode == 'info') {
s += msg ? msg : '';
} else {
s += '<hr class="shadowline" />';
s += '<div class="postbox"><div class="' + (mode == 'alert' ? 'alert_error' : 'alert_info') + '"><p>' + msg + '</p></div>';
s += '<div class="alert_btn"><input type="button" id="fwin_dialog_submit" value="&nbsp;确定&nbsp;" />';
s += mode == 'confirm' ? '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" onclick="hideMenu(\'' + menuid + '\', \'dialog\')" value="&nbsp;取消&nbsp;" />' : '';
s += '</div></div>';
}
s += '</div></td><td class="m_r"></td></tr><tr><td class="b_l"></td><td class="b_c"></td><td class="b_r"></td></tr></table>';
menuObj.innerHTML = s;
if($('fwin_dialog_submit')) $('fwin_dialog_submit').onclick = function() {
if(typeof func == 'function') func();
else eval(func);
hideMenu(menuid, 'dialog')
};
showMenu({'mtype':'dialog','menuid':menuid,'duration':3,'pos':'00','zindex':JSMENU['zIndex']['dialog'],'cache':0,'cover':cover});
}
[/javascript]

[html]<a  href="javascript:;" onclick="showDialog('这里是通知内容,支持html哦!', 'notice', '通知标题', null, 1)">使用背景遮罩</a>[/html]
showDialog(msg, mode, t, func, cover)
msg:内容,支持html
mode:提升模式,从函数里面看,支持'confirm'(显示确定,取消按钮), 'notice'(显示确定按钮), 'info'(只有内容,除了关闭标志,没有任何按钮),这几个mod如果没有被定义,默认使用alert,也就是错误提示,显示一个X再加一个确定按钮
t:也就是title,留空会使用“提示信息”着四个字
func:点击fwin_dialog_submit,也就是确定按钮的时候执行的动作,如果用typeof 检查结果是一个函数,就执行之,不用请填写NULL
cover:使用背景遮罩

Example:
[html]
<div id="divajax"></div>
<p><a href="result.php" onclick="showWindow('test',this.href);return false;">显示一个浮动窗口来返回ajax结果,这里用到了showWindow函数</a></p>
<a href="javascript:;" onclick="showDialog('演示document.write()!', 'confirm', '演示', 'document.write (\'演示document.write()\')', 1)">document.write</a>
<a href="javascript:;" onclick="showDialog('演示location.href()!', 'confirm', '演示', 'parent.location.href=\'http://g.cn\'', 1)">location.href</a>
<a href="javascript:;" onclick="showDialog('演示ajaxget(),输出到id=divajax的这一层里面', 'confirm', '演示', 'ajaxget(\'result.php?\',\'divajax\')', 1)">ajaxget</a>
[/html]

Author Info :
  • From:Discuz之showDialog函数详解【原创】
  • URL:https://blog.ihipop.com/2010/04/1131.html
  • Please Reserve This Link,Thanks!
  • 《Discuz之showDialog函数详解【原创】》上有2条评论

    发表回复

    您的电子邮箱地址不会被公开。 必填项已用 * 标注