本文介绍了织梦dedecms的提示信息总是被屏蔽怎么解决,DEDE默认采用跳转的方法开发的提示信息,现在的浏览器安全方面设置的比较严,特别是跳转功能更会被限制,所以想要完美实现提示信息就要重新开发,一起来看看吧。
下面92建站网就和大家说说织梦实现提示信息不被屏蔽的方法,使用ShowMsg进行二次开发的。
实现方案:
第一种修改方法
了解一下ShowMsg函数
DedeCMS的提示信息是通过ShowMsg函数实现的,一般格式为:
ShowMsg($msg,$gourl,$onlymsg=0,$limittime=0)
打开 include/common.func.php,找到ShowMsg函数,结合案例说明:
ShowMsg("成功登录,5秒钟后转向系统主页...","index.php",0,2000);
$msg参数是要返回的信息,也就是提示的问题;
$gourl参数是提示完成后要返回的页面,参数有:
-1 代表返回上一页;
index.php 返回指定的index.php页面;
javascript:window.opener=null;window.open('','_self');window.close(); 关闭当前跳转的提示窗口;
$limittime参数是提示出现的秒数,以毫秒为单位;1000就是1秒。
$onlymsg参数是提示的显示方式,具体参数有:
$onlymsg=0 为0,则以跳转到新页面显示;
$onlymsg<>0 不为0,则以弹出对话框的形式进行显示
如果$gourl为空,或者$onlymsg==1,跳转的页面是空白,因此进行如下修改,找到
$msg = "<script>alert(\"".str_replace("\"","“",$msg)."\");</script>";
修改为:
$msg = "<script>history.go(-1);location.reload()</script>";
让$gourl值为1时,就能实现返回上级(历史)页面并刷新,但并不提示任何信息。这样做的好处是:htm页面内编写JS判断字段数据是否规范,不满足条件不能提交,不必提示信息跳转。
结合点击或回车事件
在所需要修改的模板</head>之前增加代码
<script type="text/javascript">
function record(){
alert("更新信息已成功");
}
</script>
对应的提交(确定)按钮,需要增加onclick鼠标点击效果。
<button class="button2" type="submit" onclick="record()">确定</button>
当然如果希望输入某个字段(如name="uname")后回车就需要在对应的input增加代码
<input type="text" id="" name="uname" onkeypress="
if(event.keyCode==13){
record();//执行click事件,多个事件之间用英文的";"隔开
return false;//不执行表单提交
}"/>
第二种修改方法
打开include/common.fun.php,找到
if($gourl=='' || $onlymsg==1)
{
$msg = "<script>alert(\"".str_replace("\"","“",$msg)."\");</script>";
}
修改为
if($gourl=='' || $onlymsg==1)
{
$msg = "<script>alert(\"".str_replace("\"","“",$msg)."\");self.location=document.referrer;</script>";
}
打开plus/posttocar.php,找到
ShowMsg("已添加加到购物车,<a href='car.php'>查看购物车</a>","car.php");
修改为
ShowMsg("已添加加到购物车,<a href='car.php'>查看购物车</a>");
这样就可以了,要改的地方很多,要小心谨慎哦。