LDRizeをFirefox13で使えるようにする 実用編

Firefox13へのアップデートが提供されて早や5日、世間的にはスクロールがぬるぬるするのが気持ち悪いという声がほとんどなのではないかというタイミング。メモリがどうのアドオン・スクリプトの対応がどうのという声は、いつぞやのアップデートに比べるとさほど大きくないように感じられる。

LDRizeは死活問題

しかし、LDRizeは例によって動かなくなってしまい、数々の対応策――古いブラウザを使う、あるいはgreasemonkeyにパッチを当てる、あるいはスクリプト自体に手を加える、あるいはそれら全て――を駆使して使い続けてきた人が、今回のアップデートに被災し、あちこちでまた悲嘆の声をあげている。
twitterのリアルタイム検索なんかを覗くと、阿鼻叫喚を垣間見れる。

LDRizeがないとtumblrで快適なReblog環境が構築できない! ということで困っている人もたくさんいることだろう。

手っ取り早く動かす方法

長々と記事を読む気がない人も多かろうと思うので、結論だけ先に書く。

前提条件

Greasemonkey0.9.12以降でMinibufferとLDRizeが動かない理由とか - tyoro.exeで示された対策を処方済みであること。
これまでのLDRize死亡→復活の経緯もよくまとまっているので、情報を参照しやすくて実にありがたい。

具体的にやること

素のLDRize(ただしsharedObjectは使えるようにしてあるもの)なら992行目(SITEINFOを書き足している人はその限りではない)にある【location.href.match(this.domain)】を、【location.href.match(new RegExp(this.domain))】に書き換えるだけ。

差分は以下。

diff --git a/LDRize.user.js b/LDRize_mod.user.js
index 128fa25..ae7cabd 100644
--- a/LDRize.user.js
+++ b/LDRize_mod.user.js
@@ -7,7 +7,7 @@
 // @include        file:///*
 // ==/UserScript==
 
-const SCRIPT_VERSION = "2011.11.11"	//sharedObject
+const SCRIPT_VERSION = "2012.06.10"	//sharedObject and RegExp
 const SCRIPT_URL     = "http://userscripts.org/scripts/show/11562"
 
 // ------------------------------------------------------------------
@@ -989,7 +989,7 @@ Siteinfo.prototype = {
 			 $X(this.paragraph).length){
 			  return true;
 		  }
-		  if( this.domain.length && location.href.match(this.domain) && (this.disable || $X(this.paragraph).length)){
+		  if( this.domain.length && location.href.match(new RegExp(this.domain)) && (this.disable || $X(this.paragraph).length)){
 			  if(this.disable) throw 0;
 			  return true;
 		  }

gistはコチラ LDRizeをFirefox13で動かす · GitHub