Safari Developer FAQ

こないだIEとfirefoxのjavascriptデバッグ環境は整ったので残るsafariということで調べたけれど “safariには javascript console に console.log() でデバッグ文を出力するのよりよいデバッグ環境はない”というのがわかっただけ。残念。

javascript console にデバッグ文を出す方法は、Safari Developer FAQ にあるとおり。

if(window.console) {
    window.console.log("I think therefore I code!");
} else {
    alert("I think therefore I code!");
}

こんなふうにかくと javascsript console に文字列が出てくる。firebugとおんなじかんじ。

firebugのprintfire()も、safariの console.log() も、毎回書くのは大変なので、MS製品育ちの自分は

window.trace = firebug;

って書いて trace() で出力できるようにしている。が、safariも同様に

window.trace = window.console.log

としてtrace()を呼ぶとなぜかsafari(1.3.1)が落ちる。試行錯誤の結果

window.trace = function (str) { window.console.log(str); };

にすると落ちない。なので今はこうしてます。

あとどこかに書いてあったんだけど、このconsole.log()は引数をprintf()みたいに%を特殊文字として扱うらしく、%が入っていると出力が変になったりするって書いてあったけど未確認。


About this entry