找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2327|回复: 0

[分享] Discuz!开发之js弹出框函数showDialog介绍

[复制链接]
发表于 2017-11-15 10:51:46 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
showDialog定义地址:\static\js\common.js
  1. var showDialogST = null;  
  2. function showDialog(msg, mode, t, func, cover, funccancel, leftmsg, confirmtxt, canceltxt, closetime, locationtime) {  
  3.     clearTimeout(showDialogST);  
  4.     cover = isUndefined(cover) ? (mode == 'info' ? 0 : 1) : cover;  
  5.     leftmsg = isUndefined(leftmsg) ? '' : leftmsg;  
  6.     mode = in_array(mode, ['confirm', 'notice', 'info', 'right']) ? mode : 'alert';  
  7.     var menuid = 'fwin_dialog';  
  8.     var menuObj = $(menuid);  
  9.     var showconfirm = 1;  
  10.     confirmtxtdefault = '确定';  
  11.     closetime = isUndefined(closetime) ? '' : closetime;  
  12.     closefunc = function () {  
  13.         if(typeof func == 'function') func();  
  14.         else eval(func);  
  15.         hideMenu(menuid, 'dialog');  
  16.     };  
  17.     if(closetime) {  
  18.         showPrompt(null, null, '<i>' + msg + '</i>', closetime * 1000, 'popuptext');  
  19.         return;  
  20.     }  
  21.     locationtime = isUndefined(locationtime) ? '' : locationtime;  
  22.     if(locationtime) {  
  23.         leftmsg = locationtime + ' 秒后页面跳转';  
  24.         showDialogST = setTimeout(closefunc, locationtime * 1000);  
  25.         showconfirm = 0;  
  26.     }  
  27.     confirmtxt = confirmtxt ? confirmtxt : confirmtxtdefault;  
  28.     canceltxt = canceltxt ? canceltxt : '取消';  
  29.   
  30.   
  31.     if(menuObj) hideMenu('fwin_dialog', 'dialog');  
  32.     menuObj = document.createElement('div');  
  33.     menuObj.style.display = 'none';  
  34.     menuObj.className = 'fwinmask';  
  35.     menuObj.id = menuid;  
  36.     $('append_parent').appendChild(menuObj);  
  37.     var hidedom = '';  
  38.     if(!BROWSER.ie) {  
  39.         hidedom = '<style type="text/css">object{visibility:hidden;}</style>';  
  40.     }  
  41.     var s = hidedom + '<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"><h3 class="flb"><em>';  
  42.     s += t ? t : '提示信息';  
  43.     s += '</em><span><a href="javascript:;" id="fwin_dialog_close" class="flbc" onclick="hideMenu(\'' + menuid + '\', \'dialog\')" title="关闭">关闭</a></span></h3>';  
  44.     if(mode == 'info') {  
  45.         s += msg ? msg : '';  
  46.     } else {  
  47.         s += '<div class="c altw"><div class="' + (mode == 'alert' ? 'alert_error' : (mode == 'right' ? 'alert_right' : 'alert_info')) + '"><p>' + msg + '</p></div></div>';  
  48.         s += '<p class="o pns">' + (leftmsg ? '<span class="z xg1">' + leftmsg + '</span>' : '') + (showconfirm ? '<button id="fwin_dialog_submit" value="true" class="pn pnc"><strong>'+confirmtxt+'</strong></button>' : '');  
  49.         s += mode == 'confirm' ? '<button id="fwin_dialog_cancel" value="true" class="pn" onclick="hideMenu(\'' + menuid + '\', \'dialog\')"><strong>'+canceltxt+'</strong></button>' : '';  
  50.         s += '</p>';  
  51.     }  
  52.     s += '</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>';  
  53.     menuObj.innerHTML = s;  
  54.     if($('fwin_dialog_submit')) $('fwin_dialog_submit').onclick = function() {  
  55.         if(typeof func == 'function') func();  
  56.         else eval(func);  
  57.         hideMenu(menuid, 'dialog');  
  58.     };  
  59.     if($('fwin_dialog_cancel')) {  
  60.         $('fwin_dialog_cancel').onclick = function() {  
  61.             if(typeof funccancel == 'function') funccancel();  
  62.             else eval(funccancel);  
  63.             hideMenu(menuid, 'dialog');  
  64.         };  
  65.         $('fwin_dialog_close').onclick = $('fwin_dialog_cancel').onclick;  
  66.     }  
  67.     showMenu({'mtype':'dialog','menuid':menuid,'duration':3,'pos':'00','zindex':JSMENU['zIndex']['dialog'],'cache':0,'cover':cover});  
  68.     try {  
  69.         if($('fwin_dialog_submit')) $('fwin_dialog_submit').focus();  
  70.     } catch(e) {}  
  71. }  
复制代码


参数意义:
showDialog(msg, mode, t, func, cover)
msg:内容,支持html
mode:提升模式,从函数里面看,支持'confirm'(显示确定,取消按钮), 'notice'(显示确定按钮), 'info'(只有内容,除了关闭标志,没有任何按钮),这几个mod如果没有被定义,默认使用alert,也就是错误提示,显示一个X再加一个确定按钮
t:也就是title,留空会使用“提示信息”着四个字
func:点击fwin_dialog_submit,也就是确定按钮的时候执行的动作,如果用typeof 检查结果是一个函数,就执行之,不用请填写NULL
cover:使用背景遮罩
使用实例:
<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>

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-26 10:59 , Processed in 0.044114 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表