原因が分かったので
エントリーを書いてみました。
原因は
- Livedoor Reader や Livedoor Clip が parent という名前のグローバル関数を定義していること。
- Firebug が parent を無条件に Window オブジェクトと判断していること。
で、修正方法
まず、 Firefox のプロファイルディレクトリに行く。
環境 | プロファイルディレクトリ |
---|---|
WinVista | C:\Users\[ユーザ名]\AppData\Roaming\Mozilla\Firefox\Profiles\[ランダムな文字].default\ |
WinXP | C:\Users\[ユーザ名]\AppData\Roaming\Mozilla\Firefox\Profiles\[ランダムな文字].default\ |
Mac | ~/Library/Application Support/Firefox/Profiles/[ランダムな文字].default/ |
Unix系 | ~/.mozilla/firefox/[ランダムな文字].default/ |
次に以下のファイルを zip で解凍
extensions/firebug@software.joehewitt.com/chrome/firebug.jar
解凍したら firebug.jar に入っていた以下のファイルを開く
content/firebug/tabWatcher.js
で、この関数の
getContextByWindow: function(win) { while (win && win.parent != win) win = win.parent; for (var i = 0; i < contexts.length; ++i) { var context = contexts[i]; if (context.window == win) return context; } return null; },
ここを
while (win && win.parent != win)
こういう風に修正
while (win && win.parent != win && win.parent instanceof Window)
元のように全体を zip でかためて元の場所に戻す
extensions/firebug@software.joehewitt.com/chrome/firebug.jar
これで Firebug も Livedoor Reader も安心して使えるよ!
やったね!