IETester 8 謎エラーとフリーズ。原因はIETesterにあり。
ふと「印刷プレビューはJavaScriptで作れるのかな?」と思い作ってみた。
するとIETester 8が謎エラーとフリーズを連発する謎事態に。
addEventListener/attachEvent
HTMLとJavaScriptを作った。
1 | <span id="btn-print">ページを印刷する</span> |
1 2 3 4 | var paper = document.getElementById("btn-print"); paper.addEventListener("click", function() { window.print(); }, false); |
するとエラーが発生。
あぁ、addEventListener はIE8以下では使えなかったよねということで attachEvent に変更。
1 2 3 4 5 | var paper = document.getElementById("btn-print"); paper.attachEvent("onclick", function() { window.print(); event.cancelBubble = true; }); |
そしたら今度は見たことのない謎エラーが発生。
何これ…? しかもIETesterがフリーズ。
ググるとVBAでよく発生するエラーのようだが、Web制作で目にすることはない。
onclick直書きでは?
jsファイルのリンクを外してHTMLに直書きしてみた。
そもそも attachEvent はGoogle Chromeで使えない。
1 | <span id="btn-print" onclick="window.print();">ページを印刷する</span> |
結果は同じ謎エラーとフリーズ。
javascript: 直書きでは?
1 | <span id="btn-print"><a href="javascript:window.print();">ページを印刷する</a></span> |
結果は同じ謎エラーとフリーズ…。
jQueryでは?
「印刷ボタンを作るのに何でjQueryを使わなくちゃいけないんだ…」と思いつつ試す。
1 2 3 4 | <span id="btn-print">ページを印刷する</span> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script> <script src="js/javascript.js"></script> |
1 2 3 4 5 6 | $(function() { $("#btn-print").click(function() { window.print(); return false; }); }); |
結果は同じ謎エラーとフリーズ…。
jQueryがIE8で使えないって、一体何が起こっているの…?
最後の手段 IE11デバッグモード
IE8でレンダリングしたら普通に動いた…。
ということで、IETester自体に問題があることが判明ヽ(`Д´)ノ
2016年1月でIE8サポート終了
マイクロソフトは「IE8は2016年1月12日にサポートを終了する」と発表している。
仮に私が発注元の担当者であれば、この日を境にIE8を完全に切り捨てるが、日本人はすぐにそんなことは出来ない。
このご時世、未だにレガシーIEを使っている人をサポートするのではなく、モダンブラウザへの移行を啓発すべきなのだ。
有名サイトにIE8でアクセスすると、エラーが発生したり、サポート終了を発表している。
コメントを投稿する