それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

パスワードを学習オフにされたサイトのフォームを学習する

Operaのパスワードログインフォームの学習は相当シンプルで賢いのですが。

Webkit/Firefox/IE のログインフォームの学習は時々学習してくれないサイトが合って困ります

学習オフにされたログインフォームの例

<form autocomplete="off" >
</form>

また、input につけているサイトもあります。

<input type="password" autocomplete="off" />

autocomplete="off"だと、パスワードを学習しません。
こうされるとログインフォームの学習をしてくれないので、困ります。

普通のフォームを使いたい。。。

パスワードを学習の有無は、ユーザーに決めさせて欲しいです。
なので、自分で学習をしたいと思います。

ログインフォームのパス学習を有効にする

autocomplete=on にすればいいのです。これをどうするかというと JavaScriptで。

有効化にはコンソールから以下を実行すればOK
document.body.appendChild(function(){
src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js";
sc = document.createElement("script");
sc.type="text/javascript";
sc.src=src;
sc.onload = function() {
window.jQuery.noConflict();
jQuery("[autocomplete=off]").each(function(i,e){jQuery(e).attr("autocomplete","on")})
};
return sc;
}()
);

ChromeOperaの要素の検証に上記のスクリプトを書き込んだらOKです。

面倒なのでブックマークレットにしました

javascript:document.body.appendChild(function()%7B%0Asrc%3D%22https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fjquery%2F2.0.0%2Fjquery.min.js%22%3B%0Asc%20%3D%20document.createElement(%22script%22)%3B%0Asc.type%3D%22text%2Fjavascript%22%3B%0Asc.src%3Dsrc%3B%0Asc.onload%20%3D%20function()%20%7B%0Awindow.jQuery.noConflict()%3B%0AjQuery(%22input%5Btype%3Dpassword%5D%22).each(function(i%2Ce)%7BjQuery(e).attr(%22autocomplete%22%2C%22on%22)%7D)%0A%7D%3B%0Areturn%20sc%3B%0A%7D()%0A)%3B%0Avoid(0)%3B

ログインフォームの学習オフを消すブックマーク

ログインフォーム学習有効化

これで、ログインフォームを学習しないサイトを見てても安心ですね。

こういうことをイチイチしなくても、学習してたPresto好きでした。

autocomplete=off ってなんのために使うんでしょうか?「学習する・学習しない」を決めるのはユーザーですよね・・・

2013-07-12更新

ブックマークレットに、void();が抜けていて正しく動作してなかったので修正。

2013-08-02追加

autocomplete=off は input じゃなく form につけるものなんですね。すいませんでした。