##はじめに
FirefoxとかChromeなら問題ないがIEだと上手く動作しないとかはよくある話だと思う。その要因の一つであるconsole.log使用時のエラーに、つい最近ハマったのでメモしておく。
##対処法
そもそもなぜconsole.log使用時にエラーが出るのかといえば、IEがConsoleAPIに対応していないために、window.consoleの時点でundefinedを吐くからである。対処法としては、
// consoleプロパティとlog関数作ってとりあえずエラー回避
if(!window.console) {
window.console = { log: function(msg){} };
}
とか
// ConsoleAPIに対応していないなら無視
if(window.console && typeof window.console.log === 'function') {
console.log('hoge');
}
とか。
…まぁ、ちゃんとリリース時にconsole.logを消すのが一番良いのかもしれない。
##おわりに
console.logでのエラーのやっかいなところは、 開発者ツールを起動して確認するとうまく動く ところである(IE9,8)。これでハマった。いざデバッグしようとしてF12を押して確認したら「ちゃんと動いてるじゃん」と。逆に言えば、それで原因の特定ができたので良かったといえばよかったのだが。
##参考
IEでconsole.log()のエラーを出さないようにする
stackoverflow - 'console' is undefined error for Internet Explorer