DedeCMS织梦用ShowMsg函数提示信息改弹出窗口

DedeCMS的提示信息默认的是跳转,好处是防止有些浏览器禁止了弹出窗口,但用户体验稍差,可以修改提示信息为弹窗更友好,秀站网做两种修改方法:

第一种修改方法

举个表单提交的例子,实现功能:

①表单字段为空,弹出对话框提示信息,不提交表单,返回;②表单信息完整无误,更改点击提交后的跳转为弹出“成功提交”对话框信息,关闭当前窗口并刷新;了解一下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,则以跳转到新页面显示; $onlymsg0 不为0,则以弹出对话框的形式进行显示

如果$gourl为空,或者$onlymsg==1,跳转的页面是空白,因此进行如下修改,找到

$msg = \”alert(\\\”\”.str_replace(\”\\\”\”,\”“\”,$msg).\”\\\”);\”;

修改为:

$msg = \”history.go(-1);location.reload()\”;

让$gourl值为1时,就能实现返回上级(历史)页面并刷新,但并不提示任何信息。这样做的好处是:htm页面内编写JS判断字段数据是否规范,不满足条件不能提交,不必提示信息跳转。

结合点击或回车事件

在所需要修改的模板之前增加代码

function record(){ alert(\”更新信息已成功\”); }

对应的提交(确定)按钮,需要增加onclick鼠标点击效果。

当然如果希望输入某个字段(如name=\”uname\”)后回车就需要在对应的input增加代码

以上可以实现用点击按钮或者回车实现提示信息为弹出对话框,点击确定后才真正提交内容。

判断所字段是否为空,参考文章《详解获取input输入值并实现回车激活按钮事件且不提交表单》。

第二种修改方法

举个购物车提交的例子,实现功能:

用户提交商品到购物车后不跳转到购物车,直接返回原页面并刷新该页面。

打开include/common.fun.php,找到

if($gourl=='' || $onlymsg==1){ $msg = \”alert(\\\”\”.str_replace(\”\\\”\”,\”“\”,$msg).\”\\\”);\”;}

修改为

if($gourl=='' || $onlymsg==1){ $msg = \”alert(\\\”\”.str_replace(\”\\\”\”,\”“\”,$msg).\”\\\”);self.location=document.referrer;\”;}

打开plus/posttocar.php,找到

ShowMsg(\”已添加加到购物车,查看购物车\”,\”car.php\”);

修改为

ShowMsg(\”已添加加到购物车,查看购物车\”);DedeCMS跳转提示信息修改总结

第一种是利用原生JavaScript与DedeCMS源代码,功能较强大,可以对字段进行筛选、判断是否空等操作,根据自己的实际需要进行修改;

另一种是只利用了DedeCMS源代码,功能较单一。根据自己的实际需要选择任意一种都可以,两种方法有冲突。

本文收集自网络,由本站搜集发布,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系本站核实处理。如需转载,请注明文章来源。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享