Sleipnir×KeePass民歓喜なスクリプトが公開されたよ

[追記 2011 Oct. 30th 12:00ごろ]
しばらく試した結果、inputタグのtype属性を無理やり変える処理が残ってるとinputタグ間の移動が上手く行かない場合が多いっぽいのでコメントアウトした。
ついでに、改良版のスクリプトKeepassWand補助スクリプト改良版にて晒してますのでそちらを使った方が良いでしょう。
[追記終わり]

こいつぁ便利

この日記、本当は土曜の夜に書くつもりだったんだけどうっかり寝ちゃって、日月は出かけていたのでしたw


SleipnirでパスワードマネージャといえばツールバーがプリインストールされているRoboformでしょうか。
他にはSleipnir 2.9.8にてブックマークレットが使用可能になったLastpassとか。

そんな中、私が使っているのはKeePassです。
で、先日coocoaさんがSleipnir 2.x.x + KeePass 2.x で使用可能な「KeePassWand」ってのを作ってくれました。
詳しい使い方などはマニュアル読んでください。


これでまた少し私のぷにるが便利になりました。


ところで私がKeePass使う上でよくあるミスとして、入力時にIMEがオンになっていてorzとなる場合が結構あったり。
というわけで、対策としてKeePassWand補助用のスクリプトを書きました。
UAスクリプトとして使う方だけです。


KeePassWandAux.js

(function() {
	var act = "", f;
	if(document.activeElement.id) {
		act = "i:" + document.activeElement.id
	}else if(document.activeElement.name) {
		act = "n:" + document.activeElement.name
	}
	/*
	var ipt = document.getElementsByTagName("input");
	for(var i = 0; i < ipt.length; i++) {
		if(ipt[i].type.toLowerCase() == "text") {
			ipt[i].outerHTML = ipt[i].outerHTML.replace(/type=["']?text['"]?/i,'type="password"');
		}
	}
	*/
	if(act.match(/^i:/) != null) {
		f = document.getElementById(act.substring(2, act.length));
		f.style.background = "#ffc";
		f.style.imeMode = "disabled";
		f.focus();
	}else if(act.match(/^n:/) != null) {
		f = document.getElementsByName(act.substring(2, act.length))[0];
		f.style.background = "#ffc";
		f.style.imeMode = "disabled";
		f.focus();
	}
})();

最初はテキストボックスのtype属性をパスワード用のものに変える方法*1で書いたのですが、一部のページ*2で上手くいかなかったので、CSSIME切ってます。
後者のおかげで前者はいらなくなったような気もするけど念のためそのまま残してありますw

さえ(仮称)にて以下のように記述した後にマウスジェスチャなどに登録してください。

KeepassWandAux
KeepassWand


なお、cocoaさんはここ数日の間にいくつかの他のスクリプトもアップデートされたりしているので氏のスクリプトを使っている方は確認してみるとよろしいでしょう。
ここここあP - 更新履歴

*1:パスワードを覗けるブックマークレット(の一部)の逆の発想です

*2:セブン&アイとか