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 Undefined,Null类型和NaN值区别
Oct 22 Javascript
JavaScript实现在数组中查找不同顺序排列的字符串
Sep 26 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
Oct 17 Javascript
js跨域请求的5中解决方式
Jul 02 Javascript
Bootstrap Table使用方法解析
Oct 19 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
Jul 18 Javascript
JavaScript截屏功能的实现代码
Jul 28 Javascript
Angularjs 手写日历的实现代码(不用插件)
Oct 18 Javascript
vue中动态绑定表单元素的属性方法
Feb 23 Javascript
jquery的 filter()方法使用教程
Mar 22 jQuery
jquery实现搜索框功能实例详解
Jul 23 jQuery
javascript数据类型中的一些小知识点(推荐)
Apr 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 论坛采集程序 模拟登陆,抓取页面 实现代码
2009/07/09 PHP
PHP获取某个月最大天数(最后一天)的方法
2015/07/29 PHP
Symfony2学习笔记之控制器用法详解
2016/03/17 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
document对象execCommand的command参数介绍
2006/08/01 Javascript
一个JS翻页效果
2007/07/23 Javascript
JavaScript为对象原型prototype添加属性的两种方式
2010/08/01 Javascript
Javascript和Java获取各种form表单信息的简单实例
2014/02/14 Javascript
jQuery()方法的第二个参数详解
2015/04/29 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
浅谈js算法和流程控制
2016/12/29 Javascript
jQuery实现鼠标经过显示动画边框特效
2017/03/24 jQuery
vue动态生成dom并且自动绑定事件
2017/04/19 Javascript
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
2017/07/11 Javascript
webpack多入口文件页面打包配置详解
2018/01/09 Javascript
微信小程序实现拼图小游戏
2020/10/22 Javascript
jquery实现加载更多&quot;转圈圈&quot;效果(示例代码)
2020/11/09 jQuery
[05:53]完美世界携手游戏风云打造 卡尔工作室观战系统篇
2013/04/22 DOTA
[45:18]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第一场
2018/04/04 DOTA
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
对python中的os.getpid()和os.fork()函数详解
2019/08/08 Python
解决Python logging模块无法正常输出日志的问题
2020/02/21 Python
python输出数学符号实例
2020/05/11 Python
美丽的现代设计家具:2Modern
2018/07/26 全球购物
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
室内设计实习自我鉴定
2013/09/25 职场文书
应用心理学个人求职信范文
2013/12/11 职场文书
岗位廉洁从业承诺书
2014/03/28 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
学习计划是什么
2019/04/30 职场文书
美甲店的创业计划书模板
2019/08/23 职场文书
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python
Python基础学习之奇异的GUI对话框
2021/05/27 Python