Yahoo! JAPAN等はYahoo! ID、パスワードをブラウザに覚えさせることができません。ソースコードに、以下のautocomplete=”off”コードが有るためです。これがある場合、ブラウザは「ID、パスワードを保存しますか?」と聞いてくることはありません。
<form method="post" action="ログインURL" autocomplete="off">
そこで、ユーザスクリプトを実行できるGreasemonkeyを使って、強制的にautocomplete=”on”にすることにします。
最初、Force AutoCompleteをインストールしましたが、アメリカン・エキスプレスカードのページで反応しませんでした。
ソースコードを見てみると、1つ抜けているところがあります。
(function() { var form, input; form = document.getElementsByTagName('form'); if(form) { for(i = 0; i < form.length; i++) { form[i].setAttribute('autocomplete', 'on'); } input = document.getElementsByTagName('input'); for(i = 0; i < input.length; i++) { if(input[i].type=='text' || input[i].type=='password') { input[i].setAttribute('autocomplete', 'on'); } } } })();
太字で表示している、「 || input[i].type==’password’」を追加しました。textだけでなく、passwordも対応する必要があります。上記スクリプトをユーザスクリプトとして登録します。
登録方法は、一度Greasemonkeyのメニューから、「ユーザスクリプトの管理(M)…」を開き、Force AutoCompleteを削除します。
次に、「新規ユーザスクリプト(N)」を選択し、名前に「強制オートコンプリート」と入力、名前空間、説明は適当に入力してください。名前空間を「http://www.poitan.net/」、説明は「強制的にオートコンプリートを有効にします。」等です。「実行するページ」に下記の内容を含めます。Yahoo! JAPANとダイナースのサイバーアベニュー、DCMX、アメリカン・エキスプレスカードをデフォルトで有効にします。
https://login.yahoo.co.jp/* https://dinersclub.diners.co.jp/* https://www.dcmx.jp/* https://global.americanexpress.com/*
設定をすると、テキストエディタが開き、以下のコードが自動で作成されます。
// ==UserScript== // @name 強制オートコンプリート // @namespace http://www.poitan.net/ // @description 強制的にオートコンプリートを有効にします。 // @include https://login.yahoo.co.jp/* // @include https://dinersclub.diners.co.jp/* // @include https://www.dcmx.jp/* // @include https://global.americanexpress.com/* // @version 1 // ==/UserScript==
上記の==/UserScript==の下に、「(function() {」以下のスクリプトをペーストし、テキストエディタで保存してください。これで、Yahoo! JAPAN等のページでID、パスワードの保存ができるようになります。
もし、保存ができないページが現れたら、Greasemonkeyのメニューから、「ユーザスクリプトの管理(M)…」を選び「設定」ボタンを押します。「ユーザスクリプトを実行するページ」の「追加…」ボタンをクリックし、該当ページのドメインの後ろに「*」をつけて「OK」ボタンをクリックします。例えば、ポイ探のログインページがオートコンプリート非対応の場合は「https://ssl.poitan.net/*」と登録します。