JavaScript
IE

【JavaScript】IE9以前でconsole.logを使用しているとハマる

More than 5 years have passed since last update.


はじめに

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