javascript 建设银行登陆键盘


Posted in Javascript onJune 10, 2008
/****************************************************** 
//      *功能描述:把密码输入控件写入页面中 
//      *参数说明: 
//        inputCtlName:原控件名 
//         
//        创建日期:2006-07-24 
***************************************************** */ 
var InputControlAreaIndex=0; 
var InputControlAreaPubKey=''; 
var InputControlAreaAccVer="115A7165-DE06-49B8-9850-15414C233E83:1009"; 
var InputControlAreaFlag="1"; 
var InputControlAreaAccVerFlag=false; 
var InputControlAreaArray=new Array(); 
function InputControlArea(inputName,type){     //初始化控件标签 
    var input=document.all[inputName];     
    //初始化软键盘 
    //this.initKeyBoard(input); 
    //判断控件是否启用 
    if(input==null||arguments.length!=2||(InputControlAreaFlag!=2&&InputControlAreaFlag!=3)){ 
        this.obj=false;         
        return ;         
    } 
    //生成控件标签 
    this.init("Sec."+inputName,inputName);     
    //取得有效控件 
    var returnObject=this.getInputCtl(document.all["Sec."+inputName],type);     
    //显示有效控件 
    this.obj=this.displayInput(returnObject,document.all[inputName]);     
    InputControlAreaArray[InputControlAreaArray.length]=this.obj;     
     
} 
InputControlArea.prototype.initKeyBoard=function (input){ 
    if(InputControlAreaFlag==3||InputControlAreaFlag==1) 
    { 
        input.onkeydown=function (){ 
            Calc.password.value=this.value;             
        } 
        input.onchange=function (){ 
            Calc.password.value=this.value;             
        } 
        input.onclick=function (){ 
            password1=this;             
            showkeyboard();             
            this.readOnly=1;             
            Calc.password.value='';             
        } 
    }else if(InputControlAreaFlag==2||InputControlAreaFlag==0) 
    { 
        input.onkeydown=null;         
        input.onchange=null;         
        input.onclick=null;         
    } 
} 
InputControlArea.prototype.init=function (inputCtlId,inputName){ 
    //在函数末尾追加的控件,先调用。 
    function writeInputControl(clsid,id){ 
        //生成控件标签 
        var classid="";         
        if(clsid!="") 
        { 
            classid=" classid='CLSID:"+clsid+"'";             
        } 
        inputSpan+='<OBJECT '+classid+' id='+id+' VIEWASTEXT style="display:none" size="20" width="100" height="17">'+'</OBJECT>';         
    } 
    var inputSpan=document.all[inputName].outerHTML+"<div id = '"+inputName+"Area' style = 'border:1px solid #69c;padding:0;vertical-align:top;width:148;height=17;display:none'>";     
    writeInputControl("",inputCtlId); 
    // 
    var strCtls=InputControlAreaAccVer.split(",");     
    for(var i=0;i<strCtls.length;++i) 
    { 
        writeInputControl(strCtls[i].split(":")[0],inputCtlId); 
        //控件A 
         
    } 
    /////////////////////////////////////////////////////////////////////// 
    inputSpan+='<img id='+inputCtlId+"img"+' SRC="images/icon_small_hand.gif" ALT="已使用密码输入控件,方便您的密码输入!" width=16 height=17 style = "vertical-align:top;display:none" ></img>';     
    inputSpan+="</div>";     
    document.all[inputName].outerHTML=inputSpan;     
} 
InputControlArea.prototype.displayInput=function (returnObj,input){ 
    //控件有效 
    if(returnObj.classid!="") 
    { 
        input.style.display="none";         
        returnObj.style.display="";         
        document.all[returnObj.id+"img"].style.display="";         
        document.all[input.name+"Area"].style.display="inline";         
        returnObj.onblur=function (){ 
            //判断离开焦点时的处理是否存在 
            if(input.onblur) 
            { 
                input.onblur.call();                 
            } 
            //设置密码 
            //input.value = returnObj.GetPassword(InputControlAreaPubKey); 
            //returnObj.length = returnObj.GetLength(); 
        } 
        returnObj.onDoSubmit=function (){ 
            input.value=returnObj.GetPassword(InputControlAreaPubKey);             
            returnObj.length=returnObj.GetLength();             
        } 
        if(InputControlAreaPubKey=='') 
        { 
            initOnSubmit();             
            InputControlAreaPubKey=returnObj.GetPubKey(InputControlAreaPubKey);             
        } 
        returnObj.SetFunName(input.name);         
    }else { 
        //控件无效 
        input.style.display="";         
        returnObj=false;         
        if((window.location.toString ()).indexOf("LOGIN")==-1) 
        { 
            return ;             
        } 
        var warning;         
        if(InputControlAreaAccVerFlag) 
        { 
            warning="您的密码输入控件版本无效,是否安装新版本?";             
        } 
        else  
        { 
            warning="您未安装密码输入控件,是否安装?";             
        } 
         
        var SetUpFlag=this.GetCookie("SetUpFlag");         
        var returnFlg=this.GetCookie("returnFlg");         
        if(returnFlg=="1") 
        { 
            this.SetCookie("returnFlg","0");             
            return ;             
        } 
        if(SetUpFlag!="0"||SetUpFlag==null) 
        { 
            this.SetCookie("SetUpFlag","1");             
            top.location="/app/B2CMainPlatV5?CCB_IBSVersion=V5&CUSTYPE=0&TXCODE=801002";             
        } 
         
    } 
    //返回有效控件 
    return returnObj;     
} 
InputControlArea.prototype.getInputCtl=function (inputCtls,type){ 
    var validSE=0;     
    for(var i=inputCtls.length-1;i>=1;i--){ 
        try{ 
            if(InputControlAreaAccVer.indexOf(inputCtls[i].GetVersion())==-1){ 
                InputControlAreaAccVerFlag=true;                 
                continue;                 
            } 
            inputCtls[i].SetCryptFlag(type);             
            validSE=i;             
            break;             
        }catch(e){ 
            //continue; 
        } 
        try{ 
            inputCtls[i].GetStrMsg();             
            validSE=i;             
            break;             
        }catch(e){ 
            continue;             
        } 
    } 
    InputControlAreaIndex=validSE;     
    return inputCtls[validSE];     
} 
function callOnBlurByName(inputCtlName){ 
    document.all["Sec."+inputCtlName][InputControlAreaIndex].onblur.call();     
} 
InputControlArea.prototype.SetCookie=function (sName,sValue) 
{ 
    document.cookie=sName+"="+escape(sValue)+"; expires=Fri, 31 Dec 2999 23:59:59 GMT;";     
} 
// Retrieve the value of the cookie with the specified name. 
InputControlArea.prototype.GetCookie=function GetCookie(sName) 
{ 
    // cookies are separated by semicolons 
    var aCookie=document.cookie.split(";");     
    for(var i=0;i<aCookie.length;i++) 
    { 
        // a name/value pair (a crumb) is separated by an equal sign 
        var aCrumb=aCookie[i].split("=");         
        if(aCrumb[0].indexOf(sName)!=-1){ 
            return unescape(aCrumb[1]);             
        } 
    } 
    // a cookie with the requested name does not exist 
    return null;     
} 
function initOnSubmit(){ 
     
    for(var i=0;i<document.forms.length;i++){ 
        var submitHandler=document.forms[i].onsubmit;         
        if(submitHandler){ 
            document.forms[i].onsubmit=function (){ 
                initPassWord();                 
                return submitHandler.call();                 
            } 
        } 
         
    } 
} 

function initPassWord(){ 
    for(var i=0;i<InputControlAreaArray.length;i++){ 
        if(InputControlAreaArray[i]!=null&&InputControlAreaArray[i].onDoSubmit!=null) 
        { 
            InputControlAreaArray[i].onDoSubmit.call();             
        } 
    } 
}

在线演示
打包文件下载
Javascript 相关文章推荐
jQuery实现设置、移除文本框默认值功能
Jan 13 Javascript
javascript实现随时变化着的背景颜色
Apr 02 Javascript
Node.js模块封装及使用方法
Mar 06 Javascript
jQuery EasyUI中DataGird动态生成列的方法
Apr 05 Javascript
学习使用bootstrap3栅格系统
Apr 12 Javascript
jQuery焦点图轮播效果实现方法
Dec 19 Javascript
微信小程序实现移动端滑动分页效果(ajax)
Jun 13 Javascript
Vue的Flux框架之Vuex状态管理器
Jul 30 Javascript
jQuery中extend函数简单用法示例
Oct 11 jQuery
vue与bootstrap实现简单用户信息添加删除功能
Feb 15 Javascript
vue 动态给每个页面添加title、关键词和描述的方法
Aug 28 Javascript
JS使用setInterval计时器实现挑战10秒
Nov 08 Javascript
js left,right,mid函数
Jun 10 #Javascript
国外的为初学者写的JavaScript教程
Jun 09 #Javascript
使用jscript实现二进制读写脚本代码
Jun 09 #Javascript
JScript中使用ADODB.Stream判断文件编码的代码
Jun 09 #Javascript
javascript 数组的方法集合
Jun 05 #Javascript
js程序中美元符号$是什么
Jun 05 #Javascript
js字符编码函数区别分析
Jun 05 #Javascript
You might like
详解WordPress中的头像缓存和代理中的缓存更新方法
2016/03/01 PHP
php利用嵌套数组拼接与解析json的方法
2017/02/07 PHP
php 截取GBK文档某个位置开始的n个字符方法
2017/03/08 PHP
在laravel框架中使用model层的方法
2019/10/08 PHP
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
jquery中获取select选中值的代码
2011/06/27 Javascript
jquery中dom操作和事件的实例学习 下拉框应用
2011/12/01 Javascript
JS实现仿百度输入框自动匹配功能的示例代码
2014/02/19 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
JS实现页面超时后自动跳转到登陆页面
2015/01/19 Javascript
js实现checkbox全选、不选与反选的方法
2015/02/09 Javascript
微信小程序 loading 详解及实例代码
2016/11/09 Javascript
jquery实现下拉框左右选择功能
2017/02/21 Javascript
微信小程序 setData的使用方法详解
2017/04/20 Javascript
Angularjs2不同组件间的通信实例代码
2017/05/06 Javascript
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
vue实现word,pdf文件的导出功能
2018/07/31 Javascript
详解ES6 Promise对象then方法链式调用
2018/10/20 Javascript
开发Node CLI构建微信小程序脚手架的示例
2020/03/27 Javascript
Javascript基于OOP实实现探测器功能代码实例
2020/08/26 Javascript
python中的五种异常处理机制介绍
2014/09/02 Python
用实例解释Python中的继承和多态的概念
2015/04/27 Python
Python企业编码生成系统之主程序模块设计详解
2019/07/26 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
2019/09/11 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
python等差数列求和公式前 100 项的和实例
2020/02/25 Python
Python函数递归调用实现原理实例解析
2020/08/11 Python
浅析python 通⽤爬⾍和聚焦爬⾍
2020/09/28 Python
美国瑜伽品牌:Gaiam
2017/10/31 全球购物
高三毕业典礼主持词
2014/03/27 职场文书
法制宣传月活动方案
2014/05/11 职场文书
宣传标语大全
2014/07/01 职场文书
食堂厨师岗位职责
2014/08/25 职场文书
2015年班干部工作总结
2015/04/29 职场文书
撤诉书怎么写
2015/05/19 职场文书