dT*blog

design and programming

document.onload なんてありません

ちょっと切ない JavaScript の話。

onload で複数の処理を行うために、Observer パターンを使おうと思ったわけです。ファサードになるファンクションを設けるのも良いけど、融通が利きにくいし。

というわけで、document にリスナーオブジェクトを登録&実行したんだけど、これがピクリとも動かない。原因は、document.onload が存在しないこと。何故。じゃあ、body タグに書く onload は何に対応するんだ。色々イジった結果、自作の処理とバインドできる onload は、window オブジェクトのそれだけの模様。

document.writeln(document.onload); // 結果は undefined
document.writeln(window.onload); //結果は null (バインド可能)

ちなみに、一番上のスコープで this と書くと、window を指すみたい。ということで、

this.addEventListner("doSomething", lintener1);
this.addEventListner("doSomething", lintener2);
this.onload = this.dispatchEvent(
                  {type:"doSomething", target:this}
              );

こんな形になりました。厄介だ。

Posted by dT by 21:38

トラックバック

このエントリーのトラックバックURL
http://www.deftrash.com/admin/mt/mt-tb.cgi/265
javascript from PukiWiki/TrackBack 0.2 at 2006年03月13日 04:01
javascript/ウィンドウサイズの変更 javascript/ページをプリントする javascript/1つのフォームから2つのCGIにsubmi... [続きを読む]

コメント




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30