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,則以跳轉到新頁面顯示;
$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>");



















