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