140文字以内で DOMContentLoaded
DOM構築完了またはそれ相当のタイミングで (どこかで定義されている)関数A をコールバックします。
function Z(){try{(new Image).doScroll();A()}catch(e){setTimeout(Z,0)}} +[1,]?document.addEventListener("DOMContentLoaded",A,!1):Z()
130byteで驚きの読み辛さ。
ヒューマンリーダブル版
(function() { function IEDOMContentLoaded(){ try { (new Image()).doScroll(); // [!] throws A(); } catch(err) { setTimeout(IEDOMContentLoaded, 64); // delay after 64ms } } // IE6〜IE8を判定(IE8以下ならNaN, それ以外なら1) if (+[1,]) { // WebKit(525+), Safari3.1+, Google Chrome // Gecko, Firefox2+ // Opera9+ // IE9(maybe) http://bit.ly/bb0oGw document.addEventListener("DOMContentLoaded", A, false): } else { // IE6 // IE7 // IE8 IEDOMContentLoaded(); } })();
130byte版では、setTimeout(Z,0); としてますが、0だと無駄に処理が走るので、DOMContentLoaded ⇒ window.onload を保障するようにガードをキッチリ入れている場合は 64ms ぐらいが妥当かなと思われます。
# 64ms は IE の setTimeout/setInterval の最小分解能が16ms なので、その倍数から。