邮件服务器-邮件系统-邮件技术论坛(BBS)

 找回密码
 会员注册
查看: 5206|回复: 1
打印 上一主题 下一主题

[原创] 如何实现WorldClient界面新增域文本框并自动显示访问的域名

[复制链接]
跳转到指定楼层
顶楼
发表于 2006-8-24 10:55:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当然做这一步修改你可能需要一点HTML代码基础,或者仔细看本文的介绍修改前做好备份。

这里我们以LookOut模板做为例子进行修改。
用记事本打开MDaemon安装目录下的WorldClient/Templates/LookOut/Logon.html
下面我们分步讲解要修改的地方:

1、找到如下JS代码函数段:
        function init(){
                try{
                        if (self.parent.frames.length != 0)
                                self.parent.location=document.location;
                        else if (document.forms[0].User.value.length > 0)
                                document.forms[0].Password.focus();
                        else
                                document.forms[0].User.focus();
                }
                catch(exception){}
        }


在里面加入获取域名的代码,修改后如下(如果你对代码感兴趣可以研究一下):
        function init(){
                try{
                        ieurl=document.URL;
                        ieurl=ieurl.split("/");
                        var allurl=ieurl[2];
                        var okurl=allurl.split(".");
                        document.forms[0].UserB.value=okurl[1] +'.'+ okurl[2];
                        if (self.parent.frames.length != 0)
                                self.parent.location=document.location;
                        else if (document.forms[0].User.value.length > 0)
                                document.forms[0].Password.focus();
                        else
                                document.forms[0].User.focus();
                }
                catch(exception){}
        }


2、分离原来的用户邮件地址帐户文本框,实现独立的域名和用户名。首先要找到表单内用于用户输入邮件地址帐户的文本框,如下代码:
<input class="loginInput" type="text" name="User" size="18" value="<$User$>" onfocus="showFocus(this)" onblur="showBlur(this)" />

我们接着要做的就是把它“一分为二”!把如上代码删除掉,修改为如下代码:
<input type="hidden" name="User" value=""><input class="loginInput" type="text" name="UserA" size="18" value="<$User$>" onfocus="showFocus(this)" onblur="showBlur(this)" />@<input class="loginInput" type="text" name="UserB" size="18" value="" onfocus="showFocus(this)" onblur="showBlur(this)" />

原理就是把原来的User文本框设为隐藏域(因为表单提交后,WorldClient是接收User的值,我们必须保留),再新增UserA做为用户名称,UserB做为域名名称,提交时写个JS脚本把“用户名称@域名名称"组合赋值给隐藏的User并提交就实现了。
同时如果你对JS熟悉,也可以把域名文本框做成下载列表形式的。把Input做成Select就可以了,这时不介绍了。

3、提交按钮加段把“用户名称(UserA)@域名名称(UserB)"文本框内容组合并赋值给User文本框的JS代码,找到如下代码:
<input class="loginButton" type="submit" name="Logon" value="[$Sign In$]" />

修改成以下代码:
<input class="loginButton" type="submit" name="Logon" onclick="this.form.User.value = this.form.UserA.value +'@'+ this.form.UserB.value;" value="[$Sign In$]" />


完成!

经过这三步,你就可实现多域名访问时,自适应登陆域名信息了,个人感觉应用在多域名邮件系统下非常有必要,界面会跟据访问的地址: 如:http://mail.alixixi.com在域名栏就显示@alixixi.com,第二域名访问时http://mail.ejchina.com则显示@ejchina.com,比下接列表效果要好得多,下拉列表会暴露你的站有多少个域名邮件系统,而这方法不会。

好了,写到这里该去做些事情了,有时间可以到我的个人网站看看,或者你在修改过程中有什么问题可到留言本或论坛留言给我:)

阿里西西-Web开发
http://www.alixixi.com

[ 本帖最后由 alixixi 于 2006-8-24 10:59 编辑 ]

pp.JPG (16.28 KB, 下载次数: 0)

实现效果

实现效果
沙发
 楼主| 发表于 2006-8-24 10:58:48 | 只看该作者

修改模板时注意

其实通过修改HTML模板可以完全DIY自己想要的任何效果,有一点必须注意就是HTML标签的闭合,因为模板采用的是XML的标准,<?xml version="1.0"?>,所以,必须注意<font></font>类似标准的XML闭合代码的写法。。。
嘿嘿,话太啰嗦,自己体会吧。。
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

小黑屋|手机版|Archiver|邮件技术资讯网

GMT+8, 2026-8-5 06:17

Powered by Discuz! X3.2

© 2001-2016 Comsenz Inc.

本论坛为非盈利中立机构,所有言论属发表者个人意见,不代表本论坛立场。内容所涉及版权和法律相关事宜请参考各自所有者的条款。
如认定侵犯了您权利,请联系我们。本论坛原创内容请联系后再行转载并务必保留我站信息。此声明修改不另行通知,保留最终解释权。
*本论坛会员专属QQ群:邮件技术资讯网会员QQ群
*本论坛会员备用QQ群:邮件技术资讯网备用群

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