softwarekeyboard.
オンラインバンクのログイン時に使うソフトウェアキーボード的なことを書いてみたよ。
//window window.onload = main; //variable! var hiddenStatus = false; var upperOrLower = false; var Text = ""; var alphabet = new Array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); function main() { alphabet.shuffle(); alphabet.keyboardMapping(); } //keyboardMapping Array.prototype.keyboardMapping = function() { var len = this.length; if (upperOrLower) { while (len) { this[len-1] = this[len-1].toUpperCase(); --len; } } else { while(len) { this[len-1] = this[len-1].toLowerCase(); --len; } } //lenを使っちゃたんでもう一度宣言(´・ω・`) var len = this.length; while(len) { document.getElementById("char" +len).innerHTML ="<a href=\"javascript:void(0)\" onClick=\"pressKey('" +alphabet[len-1]+ "')\">" +alphabet[len-1]+ "</a>"; --len; } } function pressKey(char) { if (char == 'delete') { Text = Text.substring(0,Text.length-1); } else { Text = Text.concat(char); } if (hiddenStatus) { document.Form.output.value = Text.hidden(); } else { document.Form.output.value = Text; } } function getCheck(obj) { if (obj.checked) { hiddenStatus = true; document.Form.output.value = Text.hidden(); } else { hiddenStatus = false; document.Form.output.value = Text; } } function getLowUp(obj) { if (obj.checked) { upperOrLower = true; alphabet.keyboardMapping(); } else { upperOrLower = false; alphabet.keyboardMapping(); } } function send2alert() { alert(Text); } //text hidden String.prototype.hidden = function() { var i = this.length; res = ""; while (i) { res = res.concat("*"); --i; } return res; } //shuffle Array.prototype.shuffle = function() { var i = this.length; while(i) { var j = Math.floor(Math.random()*i); var t = this[--i]; this[i] = this[j]; this[j] = t; } return this; }
配列のシャッフルとか //shuffle
文字列の置き換えとか //text hidden
なんかjavascript書けるような気がしてきた。
次は非同期通信だぜ☆ミ