図書館サイトを便利にするGreasemonkeyスクリプトである
図書ぶらはFirefoxでしか動かなかったのですが、Chromeでも動くようにしてみました。
今回、Chromeで動かすためにやったことは以下のことです。
(1)jQueryの読み込み方法の変更
chromeで動くGresemonkeyスクリプトでjQueryを利用するを見てください。
(2)クロスドメインでXMLHttpRequestを利用できるようにする
Access-Control-Allow-Originをどこで出力すればよいのか迷ってみたを見てください。
(3)GM_*のラッパー関数を作成
図書ぶらでは、以下のGreasemonkeyで拡張されている関数を利用しています。
GM_setValue
GM_getValue
GM_xmlhttpRequest
これはchromeでは使えないので、以下のような関数を作成しました。
GM_setValue、GM_getValueは以下のような感じです。
function GM_setValue(key,value) {
localStorage[ key ] = value;
}
function GM_getValue(key,def) {
if( localStorage[ key ] == undefined && def != undefined ){
GM_setValue( key , def );
}
return localStorage[ key ] ;
}
ここでの注意は、localStorageは文字列しか保存してくれない気配です。
GM_*のときはBooleanはBooleanで保存できていたのですが、localStorageではBooleanを文字列に変換していました。
GM_xmlhttpRequestの方は、完全互換でなくてGM_xmlhttpRequest風な以下のものを用意しました。
function GM_xmlhttpRequest(url,onload){
var xhr=new XMLHttpRequest();
xhr.open("get",url);
onload&&(xhr.onload=function(){onload(this)});
xhr.send();
}
そんなに使っていないので完全に置き換えてもよかったのですが、なんとなくこんなのを用意してみました。
とりあえずこんな感じでchromeでも動くGreasemonkeyスクリプト(chromeの場合はユーザスクリプトと言った方よいのかな)
図書ぶらとなりました。