既に定義されている関数を上書きしないで関数を追加する

こんな便利なのがあったのかー。

window.attachEvent("イベント名", "関数");
<body onload="alert('hoge');">

というイベントがなんらかの理由で"固定"で指定されていて、自前でonloadイベントに関数を追加したい場合。

window.onload = function() {
  alert('foo');
}

と書きたくなりますが、これだと関数が上書きされてしまい、最初から指定してあるalert('hoge');は呼ばれなくなってしまいます。そこでイベントに対して関数を追加できるのがattachEvent。

function myFunction() { alert('foo'); }
window.attachEvent("onload", myFunction);

こうすると、画面を表示した時にonloadイベントが発生し、"hoge"→"foo"の順にメッセージボックスが出ます。一体いくつの関数が追加できるかと試してみたんですが、10000個登録しても大丈夫でした(笑)