javascript 建設(shè)銀行登陸鍵盤
/******************************************************
// *功能描述:把密碼輸入控件寫(xiě)入頁(yè)面中
// *參數(shù)說(shuō)明:
// inputCtlName:原控件名
//
// 創(chuàng)建日期: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){
//初始化控件標(biāo)簽
var input=document.all[inputName];
//初始化軟鍵盤
//this.initKeyBoard(input);
//判斷控件是否啟用
if(input==null||arguments.length!=2||(InputControlAreaFlag!=2&&InputControlAreaFlag!=3)){
this.obj=false;
return ;
}
//生成控件標(biāo)簽
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){
//在函數(shù)末尾追加的控件,先調(diào)用。
function writeInputControl(clsid,id){
//生成控件標(biāo)簽
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 (){
//判斷離開(kāi)焦點(diǎn)時(shí)的處理是否存在
if(input.onblur)
{
input.onblur.call();
}
//設(shè)置密碼
//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 {
//控件無(wú)效
input.style.display="";
returnObj=false;
if((window.location.toString ()).indexOf("LOGIN")==-1)
{
return ;
}
var warning;
if(InputControlAreaAccVerFlag)
{
warning="您的密碼輸入控件版本無(wú)效,是否安裝新版本?";
}
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();
}
}
}
在線演示
打包文件下載
相關(guān)文章
使用Three.js制作一個(gè)3D獎(jiǎng)牌頁(yè)面
本文將使用React+Three.js技術(shù)棧,制作一個(gè)專屬的3D獎(jiǎng)牌頁(yè)面,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動(dòng)手試一試2022-01-01
JavaScript新功能介紹之findLast()和findLastIndex()
最近工作中遇到了一個(gè)關(guān)于查找數(shù)組里面的目標(biāo)元素的方法,所以下面這篇文章主要給大家介紹了關(guān)于JavaScript新功能之findLast()?和findLastIndex()的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
webpack實(shí)踐之DLLPlugin 和 DLLReferencePlugin的使用教程
這篇文章主要介紹了webpack實(shí)踐之DLLPlugin 和 DLLReferencePlugin的使用教程,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-06-06
Javascript中arguments對(duì)象的詳解與使用方法
ECMAScript中的函數(shù)并不介意傳遞的參數(shù)有多少,也不介意是什么類型。由于JavaScript允許函數(shù)有不定數(shù)目的參數(shù),所以我們需要一種機(jī)制,可以在 函數(shù)體內(nèi) 部讀取所有參數(shù)。這就是arguments對(duì)象的由來(lái)。這篇文章將詳細(xì)介紹Javascript中的arguments對(duì)象和使用方法。2016-10-10
JavaScript實(shí)現(xiàn)字符串轉(zhuǎn)數(shù)組的6種方法總結(jié)
數(shù)組是?JavaScript?中最強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),我們常常通過(guò)將字符串轉(zhuǎn)換為數(shù)組來(lái)解決許多算法。本文為大家總結(jié)了6個(gè)JS字符串轉(zhuǎn)數(shù)組的方法,希望對(duì)你有所幫助2022-09-09
Postman如何實(shí)現(xiàn)參數(shù)化執(zhí)行及斷言處理
這篇文章主要介紹了Postman如何實(shí)現(xiàn)參數(shù)化執(zhí)行及斷言處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
JavaScript中的toString()和toLocaleString()方法的區(qū)別
本文給大家介紹JavaScript中的toString()和toLocaleString()方法的區(qū)別,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02
各瀏覽器對(duì)document.getElementById等方法的實(shí)現(xiàn)差異解析
這篇文章主要是對(duì)各瀏覽器對(duì)document.getElementById等方法的實(shí)現(xiàn)差異進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12

