Home > 技術 > Firebugが入っているかをJavaScriptから判断する方法

Firebugが入っているかをJavaScriptから判断する方法

簡易版FirebugのFirebug Liteのコードを見てて思ったのが、FirefoxでFirebug Liteを埋め込んだページをロードした場合に、ちゃんと既存のほうのFirebugが開いたのでどっかで判断しているじゃないかと思ったら1行目に書いてあったw

if (("console" in window) || ("firebug" in console)) {
    alert("Firebugが入っています");
}

初めのif文がまさにそれ!
alertは自前で付け足したものですが、if文のところはそれでしょう。

でももしwindowオブジェクトにconsoleがなかった場合に、次の("firebug" in console)でconsoleというオブジェクトが存在しないためにエラーなるかも。
いろいろ実験した結果ブラウザにごとに条件分けしないといけないかもです。

続きで実験用のボタンをご用意しています。

案の定consoleオブジェクトが見つかりませんになったので、windowオブジェクトにconsoleがあるかどうかで判断しています。


function firebugcheck() {
    if ("console" in window) {
        alert("Firebugが入っています");
    }
    else {
        alert("Firebugが入ってない");
    }
}

とりあえずFirebugが入っているFirefoxと、IEとで実験してみたところちゃんとFirefoxのほうで入っているというアラートが出たのでこれでいいのかな?

気持ちが悪いのがSafari3.1で上のボタンを押すと「Firebug入ってます」になった(入ってるの?w)

Safariの場合はこうかもしれない。

function firebugcheck() {
    if (("console" in window) && ("firebug" in console)) {
        alert("Firebugが入っています");
    }
    else {
        alert("Firebugが入ってない");
    }
}

ちょっと面倒だな~。


追記:

Safari 1.3以降では、JavaScriptでwindow.console.log()を使用することにより、任意の情報を明示的に記録する関数(Objective-CのNSLog()に似た関数)がサポートされます。すべてのメッセージが「JavaScript Console」ウインドウに送られ、JavaScript例外と容易に区別がつくように濃い緑色できれいに表示されます。

via: Safari Developer FAQ

Safari1.3以降でconsole.logは存在しているみたいです。

for (var i in console) {
    console.log(console[i]);
}
console.log("aaa");

forinで列挙してみたら

  • warn
  • error
  • log
  • info

の4種類があることが分かりました。
じゃあどこに出力されるの?というとエラーコンソールだそうです。
なるほどFirebugいらずってことですな。

Trackback:0

TrackBack URL for this entry
http://hisasann.com/cgi-bin/mt/mt-tb.cgi/1052
Listed below are links to weblogs that reference
Firebugが入っているかをJavaScriptから判断する方法 from HouseTect, JavaScriptな情報をあなたに

Home > 技術 > Firebugが入っているかをJavaScriptから判断する方法

Tag cloud
月別アーカイブ
Powered by
Powered by
Movable Type Commercial 4.261

Page Top