Hatena::ブログ(Diary)

Firefoxアドオンとか このページをアンテナに追加 RSSフィード

ホームページ
 Firefoxアドオンの作り方
 Read All Tweets(タイムラインを逆順に)
 検索ボックス自動入力(学習機能付き)
 定期的にチェック!

2010-09-28

GM_setValue系をChromeでも使えるようにする

Google Chrome ではGreaseMonkeyスクリプトを使えますが、GM_getValue, GM_setValueなどが使えないので、これらを含むスクリプトはそのままでは動きません。

そこで、GM_getValueなどが使えるかどうかを確認し、使えないなら代替関数をセットする必要があります。

if (!this.GM_getValue || this.GM_getValue.toString().indexOf("not supported")>-1) {
	this.GM_getValue=function (key,def) {
		return window.localStorage.getItem(key);
	};
	this.GM_setValue=function (key,value) {
		return window.localStorage.setItem(key, value);
	};
}
if( typeof(this.GM_addStyle)=='undefined' ){
	this.GM_addStyle = function (styles){	
		var S = document.createElement('style');
		S.type = 'text/css';
		var T = ''+styles+'';
		T = document.createTextNode(T)
		S.appendChild(T);
		var head = document.getElementsByTagName('head');
		head = head[0]
		head.appendChild(S);
		return;
	}
}

上のコードをスクリプトの冒頭に加えると、GM_getValue, GM_setValue, GM_addStyle を含むスクリプトをFirefox(+GreaseMonkey), Chromeの両方で使えるようになります。