Subscribed unsubscribe Subscribe Subscribe

枕を欹てて聴く

香炉峰の雪は簾を撥げて看る

LDR Full Feed 0.0.17

更新しました。更新点は以下のとおり。
LDR Full Feed for Greasemonkey


Greasemonkey 0.8により追加されたresponse.finalUrlに対応

GM_xmlhttpRequestによって返される、responseオブジェクトにfinalUrlというプロパティがつきました。

This release adds compatibility with Firefox 3.0.

There is also a new feature that allows modularization of user scripts that comes in four pieces: @resource, @require, GM_getResourceURL, and GM_getResourceText.

Also:
GM_xmlhttpRequest now includes the finalUrl property.
Internal code quality improvements
New attractive graphics by Pak-Kei Mak
Scripts that do not use top level return get the benefit of a this object

Greasemonkey :: Add-ons for Firefox

finalUrl

Value: String
Compatibility: Greasemonkey 0.8.0+
Usage: if (response.finalUrl) { /* some code */ }

GM_xmlhttpRequest - GreaseSpot Wiki

これによってリダイレクトされた後の最終的にたどり着いたURLを取得できるようになり、相対パスの解決が完全に可能になりました。
これにより、SITEINFOのbase要素は、finalUrlがあるので不要となり、新規にSITEINFOを作成する際は、base要素を考える必要がなくなりました。
一応、Greasemonkey0.8でない方のために、if(res.finalUrl)としてから実行し、elseで今までのbase URLによる相対パス解決も残してあるので、大丈夫です。

要は、/から始まるものにしか対応できなかったbase要素での指定とは違い、すべての相対パスを解決できるようになったということです。

具体的にどのfeedで活躍するかというと…窓の杜のfeedできちんと画像が表示できるよ!

相対パス変換部分を少し拡張

../や./で始まるものも解決し、絶対パスを返すようにしました。http://example.com/Constellation/../LDRFullFeed/とかは今までからブラウザが解決してくれていたので、正直別にたいした変更ではありません。なんとなくです。

細かなbug fix

もろもろです。base適用の判定を、また少し変更したり(でもfinalUrlのおかげで別にいらないけど)

補足

finalUrlがあまり意味がなくなったと聞いていてだめかなと思っていたのですが、今日来たGreasemonkey 0.8で実際にfinalUrlを見てみると、普通に動作していたので喜々として変更しました。
あと全然関係ないけど、GM_getResourceTextとかも使えました。ローカルのを読んでいるところを見ると、設定ファイルとか分けられそうな気もします。