今回、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の場合はユーザスクリプトと言った方よいのかな)図書ぶらとなりました。
0 件のコメント:
コメントを投稿