javascript windowイベントに複数を指定する に関しての質問です。


ブログパーツを作っています。
window.onloadを使って、ページの読込みが完了したらある処理を開始するというものを考えていますが、
もし、そのページに他のブログパーツなどがあり、window.onloadを使用している場合
上書きしてしまう、または上書きされてしまうということが起こってしまうかと思います。

既に複数の勝手なブログパーツが貼り付けられたページで
他に影響を与えず、確実にonloadイベントを取得する方法はありますか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2007/09/14 18:03:18
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:aside No.1

回答回数339ベストアンサー獲得回数31

ポイント5pt

該当のスクリプトは、windows.onload が現在設定されているかを調べ、設定されていなければそのまま xxxx.init という関数を設定。設定されていれば、「それを実行してから xxxx.init を実行する」という新たな関数に置き換えています。

http://q.hatena.ne.jp/1163406607

id:ken1bf7

自分のブログパーツはBodyの最終に置かれるとは限りません。

この方法を使ったとして

自分のブログパーツよりもあとで

onloadを実装するブログパーツがあった場合

上書きされてしまいませんか?

2007/09/13 13:27:02
id:Yota No.2

回答回数453ベストアンサー獲得回数28

ポイント1pt

http://www.w3schools.com/jsref/jsref_onload.asp

imgにも設定できるので、ダミーでも画像を置いたらどうでしょう。

<img src="hoge.gif" onload="hogefunc()" >

id:ken1bf7

画像の読込みの完了=ページの読込みが完了

これは成り立ちますか!?

成り立たないように思います。

2007/09/13 13:37:04
id:bankband No.3

回答回数23ベストアンサー獲得回数4

ポイント42pt

http://www.gesource.jp/programming/javascript/20050914.html


window.addEventListener(IEはattachEvent)を利用してはどうでしょうか?

これだと設定されたすべてのonloadイベントが実行されます。

id:ken1bf7

イイです!

ありがとうございます。

2007/09/14 18:00:13
id:takonixi No.4

回答回数7ベストアンサー獲得回数2

ポイント42pt

http://www.gesource.jp/programming/javascript/20050914.html

/**

* イベントを追加する

*/

function addEventListener(target, type, func){

 if(target.attachEvent){

  target.attachEvent("on" + type, func);

 }else if(target.addEventListener){

  target.addEventListener(type, func, true);

 }else {

  target["on" + type] = func;

 }

};

イベントを追加するのでしたら上記のような関数を用いてはどうでしょうか

上書きせずにイベントを追加できます(クロスブラウザ対応)

bodyのonloadでしたら

addEventListener(document.body,"load",onload時に実行したい関数)

で追加できます

id:ken1bf7

イイです!

ありがとうございます。

2007/09/14 18:00:12

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません