「POSTメソッドのログインフォームに自動ログインするブックマークレット」用の設定部分を生成するブックマークレットです。
- 添付ファイル
- forAutoLogin
改行を入れるとこんな感じです。
javascript:(function(){
var a,d=document,b=d.body.tagName,c=/^body$/i.test(b),e=frames.length,f=d.forms,i,j,n='',o='/',u=d.baseURI||location,v=u.split(o),w,x,z;
a=!c?b:e?'iframe:'+e+'\n':n;
a+=c&&!f[0]?'form:0\n':n;
for(i=0;i<f.length;i++){
b=f[i];
if(/^post$/i.test(b.method)){
z=b.getAttributeNode('action');
z=z?z.value:u;
w=z.split('../');
x=w.length;
z=z==n?u:/^https?:\/\//i.test(z)?z:v.slice(0,z[0]==o?3:v.length-x).join(o)+o+w[x-1].replace(/^\.?\//,n);
a+='\''+z+'\',{';
e=b.elements;
for(j=0;j<e.length;j++){
c=e[j];
a+=/^(text|password|hidden)$/i.test(c.type)?'\''+c.name+'\':\''+c.value+'\',':n;
}
a=a.replace(/,$/,n)+'}\n';
}else{a+='get\n';}
}
alert(a);
})();
- postメソッドのフォームしか取得しません。
- textとpasswordとhiddenしか取得しません。
- フレームページでは使えません。
- 「FRAMESET」と表示された場合はフレームページです。目的のログインフォームが取得できなかった場合は、個別のフレームを開いてやり直してください。
- 「iframe:n」と表示された場合はページにiframe要素が含まれます。目的のログインフォームが取得できなかった場合は、個別のiframeを開いてやり直してください。
- 「form:0」と表示された場合はページにform要素が含まれません。同時に「iframe:n」と表示されている場合は目的のログインフォームはiframe内に含まれているかもしれません。個別のiframeを開いてやり直してください。
- 「get」と表示された場合はform要素のmethod属性の値がgetです。
- form要素が複数ある場合はその数だけ表示されます。
WindowsXPのFirefox3.6で確認しました。IE6はアドレスバーに書き込める最大文字数を超えているので動きませんでした。


