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 相关文章推荐
javascript通过className来获取元素的简单示例代码
Jan 10 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
Aug 15 Javascript
javascript常见操作汇总
Sep 03 Javascript
微信企业号开发之微信考勤Cookies的使用
Sep 11 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
Nov 17 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
May 03 Javascript
Extjs表单输入框异步校验的插件实现方法
Mar 20 Javascript
微信小程序显示下拉列表功能【附源码下载】
Dec 12 Javascript
简单理解Vue中的nextTick方法
Jan 30 Javascript
vue-cli3 karma单元测试的实现
Jan 18 Javascript
如何检查一个对象是否为空
Apr 11 Javascript
通过实践编写优雅的JavaScript代码
May 30 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
鸡肋的PHP单例模式应用详解
2013/06/03 PHP
php之XML转数组函数的详解
2013/06/07 PHP
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
js substr、substring和slice使用说明小记
2011/09/15 Javascript
遍历jquery对象的代码分享
2011/11/02 Javascript
Javascript 中的 call 和 apply使用介绍
2012/02/22 Javascript
jQuery产品间断向下滚动效果核心代码
2014/05/08 Javascript
js鼠标悬浮出现遮罩层的方法
2015/01/28 Javascript
cookie的secure属性详解
2015/04/08 Javascript
每天一篇javascript学习小结(Function对象)
2015/11/16 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
JS实现保留n位小数的四舍五入问题示例
2016/08/03 Javascript
基于JavaScript实现的顺序查找算法示例
2017/04/14 Javascript
JavaScript体验异步更好的解决办法
2018/01/08 Javascript
详解ES7 Decorator 入门解析
2019/02/18 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
在Vue中使用Echarts可视化库的完整步骤记录
2020/11/18 Vue.js
[01:38]女王驾到——至宝魔廷新尊技能&特效展示
2020/06/16 DOTA
[46:20]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第二场 1月22日
2021/03/11 DOTA
利用Python脚本实现ping百度和google的方法
2017/01/24 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
Python面向对象程序设计示例小结
2019/01/30 Python
Python异常处理知识点总结
2019/02/18 Python
python中正则表达式与模式匹配
2019/05/07 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
美国维生素、补充剂、保健食品购物网站:Vitacost
2016/08/05 全球购物
联想西班牙官网:Lenovo西班牙
2018/08/28 全球购物
大学生实习推荐信
2015/03/27 职场文书
宾馆安全管理制度
2015/08/06 职场文书
未来,这5大方向都很适合创业
2019/07/22 职场文书
Python数据分析之pandas读取数据
2021/06/02 Python
Python if else条件语句形式详解
2022/03/24 Python