人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

●質問者: ken1bf7
●カテゴリ:インターネット ウェブ制作
✍キーワード:JavaScript イベント ブログパーツ 勝手
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● aside
●5ポイント

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

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

◎質問者からの返答

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

この方法を使ったとして

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

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

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


2 ● Yota
●1ポイント

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

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

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

◎質問者からの返答

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

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

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


3 ● bankband
●42ポイント

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


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

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

◎質問者からの返答

イイです!

ありがとうございます。


4 ● takonixi
●42ポイント

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時に実行したい関数)

で追加できます

◎質問者からの返答

イイです!

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ