やっぱりfirebugのconsoleが動かない
firefoxのバージョンは最新の、2.0.0.18。
気まぐれにfirebugのバージョンを1.05(たぶん)から1.2.1(現在の最新安定バージョンとして配布)にしてコンソール開いて、console.log('aaaaa');を打つと
ReferenceError: console is not defined
ていわれた。
firefox3.0.4とfirebug1.2.1の組み合わせなら問題なくaaaaaがでる。
以前firefox3とfirebugでgreasemonkeyからconsole.log(unsafeWindow.console.log('aaa')で出力可)ができなかったが、コンソールからはちゃんと表示できたのに。ひどくなってる。
間違いさがし
上がfirefox3で正常にconsole.logが働いたときの様子、下が今回問題のfirefox2でエラーがでたときの様子。
firebugのバージョン1.2からはコンソールに命令を入力すると、なんやかんやでbodyの後ろにfirebugの要素が追加されて動作しているらしい。
http://ido.nu/kuma/2008/05/16/firebug-12-%E2%80%98console%E2%80%99-implementation-japanese-translation/
>FF3betaでFirebugの1.1のコマンドが動かなくなりました。これを直すのがすごい難しくてコマンドラインとコンソールを作り直す必要がありました。
がんばってにらめっこしていても解決策がわからん。
わかったこと
- commandLine.jsでwith (_FirebugCommandLine) {\n " + expr + " \n}を付加してる。
- consoleInjected.jsでevaluateErrorのハンコがおされている。
結局は
firebug 1.3.0b3をインストールして、console.log('aaaaa');が表示されたので落着。
http://getfirebug.com/releases/firebug/1.3/
firebug 1.3.0b3の役に立たない挙動メモ
firebugを有効にした状態でページを読み込んだ後の様子。無垢の状態。
Firebug cannot find _firebugConsole element TypeError: window._getFirebugConsoleElement is not a function Window
uncaught exception: Permission denied to get property Window.$0
コマンドラインパッドをクリックするとエラーが表示される(コンソールは有効の状態で)。
コマンドラインからconsole.log('aaaaa');を実行してコンソールに表示された様子。
greasemonkeyからunsafeWindow.console.log
greasemonkeyからunsafeWindow.console.log('aaaaa');を実行してコンソール表示に成功したときの様子
なんとなく
Firebug cannot find _firebugConsole elementのエラーメッセージについては、ドメインごとのコンソールを有効にするか「使用するサイト」に登録するとエラーが出力されなくなったりする。ここらへんの設定がふわふわしてる印象。有効に設定しても保存されてなくて(?)エラーがでたり。でもなぜかgoogleはどうやってもエラーがでない。
コンソールが有効な状態で、スクリプトパネル(無効)を開いた様子。チェックが入ってない。表示だけのバグじゃなさそう。1.2.1も同じだった。
まとめ
しばらくfirebugのbugにより難民の増加が予想される。