iOS 6.0にアップデートしてSafariのデバッグコンソールが使えなくなってしまったので代替方法を考えた

著者: 山岸和利
更新:

iPhoneとiPadのシステムソフトウェアをiOS 6.0にアップデートしたところ、Safariのデバッグコンソールを表示する方法を見付けられなくなってしまった。Webインスペクタというのが追加され、Mac OS X上で動作するSafariがあれば効率良くデバッグ出来るようになったようなのだが、非常に残念な事に現在の私の手許にはMac OS Xの環境が存在しない。なのでiOSのSafariでのデバッグが出来ないようになってしまった。探せば既存のデバッグコンソールを表示する方法があるのかも知れないが、しばらく探しても見付ける事が出来なかったので、非常にその場凌ぎの解決法で済ませた。

<script type="text/javascript">
  window.addEventListener('error', function (error) {
    var result =
      document.getElementById('result') ||
      (function () {
        var result = document.createElement('pre')
        result.setAttribute('id', 'result')
        document.getElementsByTagName('body')[0].appendChild(result)
        return result
      })()
    var message = [error.filename, '@', error.lineno, ': ', error.message].join(
      ''
    )
    result.textContent += '\n' + message
    return false
  })
</script>

このような記述をHTML文書に出現する全てのscript要素よりも前に加える事で、エラーが発生した際にエラーの表示がページの最下部にされるようになる。

ただWebインスペクタは非常に便利そうである。調べれば調べる程に羨しくなる。早急にMac OS X環境を得たい。しかし、だが、しかし……。