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 相关文章推荐
js的with语句使用方法
Sep 21 Javascript
javascript 对象比较实现代码
Apr 27 Javascript
js实现的切换面板实例代码
Jun 17 Javascript
文本框回车提交与禁止提交示例
Sep 27 Javascript
如何获取select下拉框的值(option没有及有value属性)
Nov 08 Javascript
JS数组(Array)处理函数整理
Dec 07 Javascript
浅谈jQuery中replace()方法
May 13 Javascript
图文详解JavaScript的原型对象及原型链
Aug 02 Javascript
ES6使用export和import实现模块化的方法
Sep 10 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
Mar 27 Javascript
JavaScript提升机制Hoisting详解
Oct 23 Javascript
axios封装与传参示例详解
Oct 18 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 创建文件(文件夹)以及目录操作代码
2010/03/04 PHP
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
2011/05/19 PHP
PHP删除指定目录中的所有目录及文件的方法
2015/02/26 PHP
关于laravel后台模板laravel-admin select框的使用详解
2019/10/03 PHP
javascript XMLHttpRequest对象全面剖析
2010/04/24 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
2013/07/09 Javascript
Jquery 数组操作大全个人总结
2013/11/13 Javascript
基于Jquery插件实现跨域异步上传文件功能
2016/04/26 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
jQuery插件ajaxFileUpload异步上传文件
2016/10/19 Javascript
js实现常见的工具条效果
2017/03/02 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
jQuery实现腾讯信用界面(自制刻度尺)样式
2017/08/15 jQuery
微信小程序网络封装(简单高效)
2018/08/06 Javascript
浅谈JS for循环中使用break和continue的区别
2020/07/21 Javascript
JS代码简洁方式之函数方法详解
2020/07/28 Javascript
Python Deque 模块使用详解
2014/07/04 Python
Python中使用HTMLParser解析html实例
2015/02/08 Python
用Python实现斐波那契(Fibonacci)函数
2016/03/25 Python
python实现用户登录系统
2016/05/21 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
2018/06/11 Python
简单谈谈python基本数据类型
2018/09/26 Python
Python3 SSH远程连接服务器的方法示例
2018/12/29 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
2019/06/17 Python
python基于plotly实现画饼状图代码实例
2019/12/16 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
python 实现倒计时功能(gui界面)
2020/11/11 Python
早晨薰衣草在线女性精品店:Morning Lavender
2021/01/04 全球购物
如何写出高性能的JSP和Servlet
2013/01/22 面试题
电子信息工程专业求职信
2014/06/28 职场文书
2015年“我们的节日·重阳节”活动总结
2015/07/29 职场文书
MySQL 全文检索的使用示例
2021/06/07 MySQL
vscode中使用npm安装babel的方法
2021/08/02 Javascript
Django+Nginx+uWSGI 定时任务的实现方法
2022/01/22 Python
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技