SyntaxHighlighter

2012年4月30日月曜日

Google Chrome 入力済FROMから自動入力JavaScriptを育成 - chromeThing.exe

Google Chrome 入力済FROMから自動入力JavaScriptを育成 - chromeThing.exe

https://sites.google.com/site/chromething/




基本的には、chromeThing.exe で利用しますが、Google Chrome Developer ToolsのConsoleからも利用可能です。


【入力済FROMから自動入力JavaScriptを育成するJavaScript】

※Form内の「input」「select」「textarea」にname属性必須です。

ファイル名:[GetForm[0][name].cthing] - - - - - - - - - - - - - - - - - - - -

<!--入力済FROMから自動入力JavaScriptを育成-->
javascript:
function SetInput(_name,_value){
return '_form[\'' + _name + '\'].value=\''+ _value +'\';'
}
var formIndex=0;
var ar = new Array();

var _form=document.getElementsByTagName('form')[formIndex];

var radioIndex =0;
var radioName='-';

var checkboxIndex =0;
var checkboxName='-';

var _input=_form.getElementsByTagName("input");
var max =_input.length;
for (var i = 0 ; i < max ; i++){
     var e=_input[i];

     if(e.type=='text'||e.type=='password'){
     ar.push(SetInput(e.name,e.value));
     }

     if(e.type=='radio'){
        if(radioName==e.name){
               radioIndex =radioIndex+1;
          }else{
               radioIndex =0;
          }
        if(e.checked){
           ar.push( '_form[\''+ e.name + '\']['+  radioIndex +'].checked=true;' );
        }
      radioName=e.name;
     }

     if(e.type=='checkbox'){
        if(checkboxName==e.name){
               checkboxIndex =checkboxIndex+1;
          }else{
               checkboxIndex =0;
          }
     var jsc='_form[\''+ e.name + '\']['+  checkboxIndex +'].checked=';

     if(_form[e.name].length==undefined){
          jsc='_form[\''+ e.name + '\'].checked=';
     }
        if(e.checked){
           ar.push( jsc+'true;' );
        }else{
           ar.push( jsc+'false;' );
        }
      checkboxName=e.name;
     }
}
var _select=_form.getElementsByTagName('select');
max =_select.length;
for (var i = 0 ; i < max ; i++){
var e=_select[i];
ar.push(SetInput(e.name,e.value));

}

var _textarea=_form.getElementsByTagName('textarea');
var max =_textarea.length;
for (var i = 0 ; i < max ; i++){
var e=_textarea[i];
var str=e.value;
str=str.replace(/(\n|\r)/g,'\\n');
ar.push(SetInput(e.name,str));
}

function j(){
var js='javascript:function do_input(){\nvar _form=document.getElementsByTagName(\'form\')[' + formIndex + '];\n';
max=ar.length;
for (var i = 0 ; i < max ; i++){
js=js+ar[i]+'\n';
}
js=js+'}do_input();';
var er=document.getElementsByTagName('TITLE')[0].text=js+'//';
disp(js,max);
window.scroll(0,document.body.scrollHeight);
}
j();
function disp(js,max){
var _div = document.createElement( 'div' );
_div .setAttribute( 'id' , '_result_div' );
var Dd = document.body.appendChild( _div );
var _textarea = document.createElement( 'textarea' );
_textarea.setAttribute( 'id' , '_result_ta' );
_textarea.setAttribute( 'cols' , 100 );
_textarea.setAttribute( 'rows' , max+3 );
var Ta = Dd.appendChild( _textarea );
Ta.value=js;
}
- - - - - - - - - - - - - - - - - - - -

0 件のコメント:

コメントを投稿