■
昨日悩んでた、IEでうまく動かない件はあっさり解決。
Doctypeを入れていないページでテストしてたので、気分転換にDoctypeを入れたらちゃんと動いた。
- ロード後にイベントをセットするやり方だと、ページ内の全ての画像が読み込み終わるまでイベントがセットされない。
- まだイベントのセットされていない要素をクリックとかマウスオーバーしたりすると、当然意図していない動作をする。
- 例えば、別ドメインのURLは別ウィンドウで開くという動きをtarget属性を使わずに、jsからセットしようとしているとする。
- 画像がたくさんあるページだと、画像の読み込みに時間がかかり、その分だけonloadイベントがセットされる(この言い方で正しい?)のが遅れる。そうすると、読み込み中に、別ドメインへのリンクをクリックすると同一ウィンドウ内でページ移動してしまう。
- まだonclickイベントをセットしていないa要素をクリックされるのを避けるために、onclickイベントがセットされるまでは、ページを非表示しておき、全てのイベントがセットされた後にページを表示させるようにする。
- そうすれば、別ドメインへのリンクを同一のページ内で開くことは回避できるようになる。
・・・というのが昨日のコードを書いた理由。