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年份下拉列表框内容为当前年份及前后50年
May 28 Javascript
浅谈javascript 归并方法
Jan 21 Javascript
javascript与Python快速排序实例对比
Aug 10 Javascript
详解js私有作用域中创建特权方法
Jan 25 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
May 24 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
Jul 05 Javascript
vue多级多选菜单组件开发
Sep 08 Javascript
JS实现根据用户输入分钟进行倒计时功能
Nov 14 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
Nov 17 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
Nov 28 Javascript
vue子路由跳转实现tab选项卡
Jul 24 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
Jul 21 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入门小知识
2008/03/24 PHP
一个简单且很好用的php分页类
2013/10/26 PHP
php调用新浪短链接API的方法
2014/11/08 PHP
thinkphp模板的包含与渲染实例分析
2014/11/26 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
jquery Mobile入门—多页面切换示例学习
2013/01/08 Javascript
js动态添加删除,后台取数据(示例代码)
2013/11/25 Javascript
js实现的map方法示例代码
2014/01/13 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
2015/11/30 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
Angularjs处理页面闪烁的解决方法
2017/03/09 Javascript
angularJS利用ng-repeat遍历二维数组的实例代码
2017/06/03 Javascript
vue.js如何将echarts封装为组件一键使用详解
2017/10/10 Javascript
基于jquery trigger函数无法触发a标签的两种解决方法
2018/01/06 jQuery
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
菜鸟使用python实现正则检测密码合法性
2016/01/05 Python
python实现决策树C4.5算法详解(在ID3基础上改进)
2017/05/31 Python
Python使用sorted排序的方法小结
2017/07/28 Python
PyQt5每天必学之带有标签的复选框
2018/04/19 Python
用python处理MS Word的实例讲解
2018/05/08 Python
python操作excel的方法
2018/08/16 Python
python实现简单加密解密机制
2019/03/19 Python
python3 selenium自动化 frame表单嵌套的切换方法
2019/08/23 Python
pyautogui自动化控制鼠标和键盘操作的步骤
2020/04/01 Python
瑞士图书网站:Weltbild.ch
2019/09/17 全球购物
户籍证明模板
2014/09/28 职场文书
事业单位年度考核个人总结
2015/02/12 职场文书
公司财务人员岗位职责
2015/04/14 职场文书
劳动者解除劳动合同通知书
2015/04/16 职场文书
2016年度员工工作表现评语
2015/12/02 职场文书
销售会议开幕词
2016/03/04 职场文书
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB
图文详解Nginx版本平滑升级方案
2021/09/15 Servers
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL