Firefoxでオートコンプリート非対応サイトをGreasemonkeyで強制オートコンプリート可能に

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/*」と登録します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください