会员登录

联系我们

电话:18921289006

传真:0510-88804819

EMAIL: 这个 E-mail 受所垃圾邮件程序保护,您需要启用 JavaScript 才能查看。

开发手记

实现joomla消息提示弹出式效果

打印 Email

joomla消息提示,例如登录不成功时出现的账号错误提示,是以模块方式显示的。效果显示不是那么太美观,为了在不修改心文件的基础上实现弹出框 提示的效果。只有对模板稍微修改一下了。

1.打开默认模板文件的css文件,一般是tmplates.css,找到#system-message,如果没有则添加一个,插入属 性:display:none;

2.打开模板的index.php,找到<jdoc:include type=”message”/>先删掉,再把下面的代码粘贴到最下面也就是</body>的前面,


<?php if ($this->getBuffer(‘message’)){?> <jdoc:include type="message" /> <script type="text/javascript" language="javascript"> var nhmessage = document.getElementById("system-message").innerHTML; sAlert(nhmessage,this);

function sAlert(txt){ //var eSrc=(document.all)?window.event.srcElement:arguments[1]; var eSrc = window; var shield = document.createElement("DIV"); shield.id = "shield"; shield.style.position = "absolute"; shield.style.left = "0px"; shield.style.top = "0px"; shield.style.width = "100%"; shield.style.height = ((document.documentElement.clientHeight>document.documentElement.scrollHeight)?document.documentElement.clientHeight:document.documentElement.scrollHeight)+"px"; shield.style.background = "#333"; shield.style.textAlign = "center"; shield.style.zIndex = "10000"; shield.style.filter = "alpha(opacity=0)"; shield.style.opacity = 0; var alertFram = document.createElement("DIV"); alertFram.id="alertFram"; alertFram.style.position = "absolute"; alertFram.style.left = "50%"; alertFram.style.top = "50%"; alertFram.style.marginLeft = "-225px" ; alertFram.style.marginTop = -75+document.documentElement.scrollTop+"px"; alertFram.style.width = "450px"; alertFram.style.height = "150px"; alertFram.style.background = "#ccc"; alertFram.style.textAlign = "center"; alertFram.style.lineHeight = "150px"; alertFram.style.zIndex = "10001"; strHtml  = "<div style=\"list-style:none;margin:0px;padding:0px;width:100%\">\n"; strHtml += "    <div style=\"background:#658BB2;text-align:left;padding-left:10px;font-size:14px;font-weight:bold;height:25px;line-height:25px;border:1px solid #336699;color:#fff;\">系统提示</div>\n"; strHtml += "    <div style=\"background:#fff;text-align:center;font-size:12px;height:120px;line-height:120px;border-left:1px solid #336699;border-right:1px solid #336699;\"><dl id=\"system-message\" style=\"display:inline;\">"+txt+"</dl></div>\n"; strHtml += "    <div style=\"background:#fff;text-align:center;font-weight:bold;height:25px;line-height:25px;border:1px solid #336699;border-top-width:0;\"><input type=\"button\" value=\"确 定\" id=\"do_OK\" onclick=\"doOk()\" /></div>\n"; strHtml += "</div>\n"; alertFram.innerHTML = strHtml; document.body.appendChild(alertFram); document.body.appendChild(shield); this.setOpacity = function(obj,opacity){ if(opacity>=1)opacity=opacity/100; try{ obj.style.opacity=opacity; }catch(e){} try{ if(obj.filters.length>0&&obj.filters("alpha")){ obj.filters("alpha").opacity=opacity*100; }else{ obj.style.filter="alpha(opacity=\""+(opacity*100)+"\")"; } }catch(e){} } var c = 0; this.doAlpha = function(){ if (++c > 20){clearInterval(ad);return 0;} setOpacity(shield,c); } var ad = setInterval("doAlpha()",1); this.doOk = function(){ //alertFram.style.display = "none"; //shield.style.display = "none"; document.body.removeChild(alertFram); document.body.removeChild(shield); eSrc.focus(); document.body.onselectstart = function(){return true;} document.body.oncontextmenu = function(){return true;} } document.getElementById("do_OK").focus(); eSrc.blur(); document.body.onselectstart = function(){return false;} document.body.oncontextmenu = function(){return false;} } </script> <?php }?>

这样就可以实现弹出式效果,如果模板有<jdoc:include type="modules" name="debug" />,代码一定也要在它前面,否则弹出消息提示后,摁确定后,页面须重新刷新一下再可以用,不然鼠标不能点击