Safari3 * GreaseKit1.4 でoAutoPagerize
GreaseKit 1.4でセキュリティの問題からGM関数が削除されました。GreaseKit および Creammonkey の GM 関数に関する脆弱性
そのため、jAutoPagerizeなど多くのScriptが動作しなくなっています。*1
そこで、同じくGM関数がない前提で作成しているoAutoPagerizeを動かしてみました。
インストールはoAutoPagerize - 0xFFからどうぞ。
- Opera用は.jsでしたが、こちらは.user.jsに
- 例によって数時間おきにSITEINFOが更新されています
- Safariだとheadタグ内のlinkが消えてしまうようで、はてなダイアリーなどで3ページ目を取得できません
- はてなダイアリーのSITEINFOを本体に持つようにしたので、ダイアリーでも動作するようになりました
jAutoPagerizeを参考にして、とりあえず動くようにしたレベルなので、バグがあったりしてすぐに修正が入るかもしれません。ご了承を。
なお、今まで書いたいくつかのUserjsもSafari3対応を進めているので、順次公開していく予定です。
セットで OperaとSafariでLDRizeとMinibuffer もどうぞー
はてなハイクについてははてなハイク用GreasemonkeyをSafari3対応に - 0xFFもどうぞ
*1:自己責任で旧バージョンを使うことを止めはしませんが、とてもオススメはできません
はてなハイク用GreasemonkeyをSafari3対応に
はてなハイク用GreasemonkeyをOpera対応に - 0xFF関連。
g:subtech:id:cho45 さん作の
Haiku の Reply を全部展開する Greasemonkey - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtechがやはりGM関数の都合でGreaseKit1.4では動かないので、対応した。
http://ss-o.net/userjs/hatena.haiku.expandrepliestree.user.js
はてなハイク用GreasemonkeyをOpera対応に - 0xFFのやつを一箇所弄っただけ。
あと、Autopagerize for Haiku. - #生存戦略 、それは - subtechのほうはそのまま動いたけど、一応再掲。
http://ss-o.net/userjs/hatena.haiku.autopagerizeforhaiku.user.js
あ、もちろん両方ともFirefoxでも動きます。たぶん。
Safari3*GreaseKit1.4用のGM関数
?D of Kをベースに。
if (typeof(GM_addStyle) != 'function') { function GM_addStyle(css) { var head = document.getElementsByTagName('head'); if (!!head) { var style = document.createElement('style'); style.type = 'text/css'; style.textContent = css; head[0].appendChild(style); } } } if (typeof(GM_setValue) != 'function' && typeof(GM_getValue) != 'function') { function GM_setValue(name, value) { document.cookie = [ name, '=', escape(value), ';expires=', (new Date(new Date().getTime() + 365 * 1000 * 60 * 60 * 24)).toGMTString() ].join(''); } function GM_getValue(name, value) { var r = new RegExp(name + '=([^;]*)'), m; if (m = document.cookie.match(r)) { return unescape(m[1]); } return value; } function GM_delValue(name, value) { if (GM_getValue(name, false)) document.cookie = name + '=;expires=Thu, 01-Jan-1970 00:00:01 GMT'; } } else { var GM_delValue = GM_setValue; }
GM_addStyleはstyle.innerHTMLをtextContentに変えただけ。
GM_setValueはnew Date() + 365 * 1000 * 60 * 60 * 24をnew Date().getTime() + 365...に修正。
GM_getValueの正規表現に余計な/が入っていたのでそれを削除。
以上です。
[追記]
あ、もちろんOpera9.25でも使えます。
Userjsでクロスブラウザを考えるなんて! と思う部分もありますが、仕方ないですね。
[/追記]