DOM構築後に実行する、すでにDOMが構築されてても実行する
addEventListener("DOMContentLoaded")だと、DOM構築後にリスナを設定した場合一度も呼ばれないので、ブックマークレットのようにいつ実行されるか分からないような時には使えない。
WebKitだと、document.readyStateがあるから、それを使えばいいけど、Firefoxにはない。
function ready(fn) { if (ready.loaded) { fn(); return; } var script = document.createElement("script"); script.defer = "defer"; script.type = "text/javascript"; script.src = "data:text/javascript,void 0"; script.onload = function () { fn(); ready.loaded = true; }; document.documentElement.appendChild(script); document.documentElement.removeChild(script); } ready.loaded = false; ready(function () { document.body.appendChild( document.createTextNode(new Date().toLocaleString())); })