Taranfx.com - Your Gateway to Technology, Redefined.

ブラウザは特定のHTMLやCSS、JavaScriptのコードを読み込むとクラッシュしたりフリーズすることが知られている。しかもそれは複雑怪奇なコードではなく、とても短いコードでも起こることがわかっている。特にIEをクラッシュさせたりフリーズさせるためのコードの多くがスニペットとして公開されている。

そうした情報のひとつにTaranfxで公開されているHow to Crash Internet Explorer IE6, IE7, IE8, IE9がある。IE6、IE7、IE8、IE9をクラッシュさせたりフリーズさせることができるコードを紹介するという内容になっている。記事の目的はIEがクラッシュするコードを使ってほかのブラウザへユーザの目を向けさせようというもの。同様の取り組みはすでに対応機能が古いIE6などを使っているユーザにアップグレードを促す目的で使われることがある。

How to Crash Internet Explorer IE6, IE7, IE8, IE9で公開されているコードは、どういったコードがIEをクラッシュさせたりフリーズさせてしまうかを知り、未然にそうしたコーディングを防ぐためにも活用できる。8つのティップスが紹介されているが、特に簡単に確認できるものをそのまま利用できる形で次の3つにまとめて掲載しておく。

IEクラッシュサンプル1

<html><head></head><body><script>for (x in document.write) { document.write(x);}</script></body></html>

IEクラッシュサンプル2

<html><head></head><body><style>*{position:relative}</style><table><input></table></body></html>

IEクラッシュサンプル3

<html><head>
<style type="text/css">
#a {margin:0 10px 10px;}
#b {width:100%;}
</style></head>
<body>
  <table>
    <tr>
      <td><div id="a"><form id="b"><input type="text" name="test"/></div></td>
      <td width="1"></td>
    </tr>
  </table>
</body></html>

IE6は多くの方法の影響を受ける。最新のバージョンほど影響を受けなくなるが、それでもどのバージョンにも影響を与えるコードが存在している。

IE6 IE7 IE8 IE9
サンプル1 クラッシュ
サンプル2 クラッシュ
サンプル3 フリーズ フリーズ フリーズ フリーズ

IE6 - サンプル1でクラッシュ

IE6 - サンプル2でクラッシュ

IE6 - サンプル3でフリーズ

IE7 - サンプル3でフリーズ

IE8 - サンプル3でフリーズ

IE9 - サンプル3でフリーズ

これらサンプルはほかの主要ブラウザで閲覧してもクラッシュやフリーズは確認できない。HTMLやCSS、JavaScriptはさまざまなアプリケーションを開発するための技術として採用のシーンを広げている。簡単に利用できる反面、不適切なコーディングはブラウザやレンダリングエンジン、JavaScriptエンジンをおかしな動作にも導きやすい。どういったコーディングが問題につながるか把握しておくことは、そうしたプログラミングを未然に避けることにもつながる。