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

【Javascript】
var old = window.onload;
window.onload = (typeof old != 'function') ?
xxxx.init : function(e) { old(e); return xxxx.init(e); };


(xxxxは関数名(?))


上記スクリプトは何を意味していますか?どのような機能をもっているのですか?詳しい方教えてください。よろしくお願いいたします。

●質問者: gillsderais
●カテゴリ:インターネット ウェブ制作
✍キーワード:JavaScript XXXX スクリプト 関数
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● b-wind
●100ポイント ベストアンサー

まず、window.onload とは以下のような関数です。

http://www.openspc2.org/JavaScript/ref/window/onload.htm

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

◎質問者からの返答

ありがとうございます。


>windows.onload が現在設定されているかを調べ、設定されていなければ・・・

すなわち、複数のWindow.onloadを可能にするものと考えてよろしいのでしょうか?

また、これ自体

window.onload = (typeof old != 'function') ?

とwindow.onloadを使用しているので、これよりあとにWindow.onloadが出てくると、無効になると考えてよろしいのでしょうか。

(つまり、このスクリプトは最後に置かなければ意味がない?)


2 ● salic
●41ポイント

私は詳しく無いのですが、

ファンクションがロードされているか調べて、ファンクションの処理方法を切り替えているように見えます。


文法は、このパターンですよね。

比較演算子

式1 ? 式2 : 式3

式1が真なら式2が評価され、偽なら式3が評価されます。

print $boolean ? "true" : "false" ;

$booleanが真なら「true」、偽なら「false」と表示されます。

http://php.dori-mu.net/syntax.html

◎質問者からの返答

ありがとうございます。

おかげさまでJSのしくみをひとつ覚えました。

!とか?でいつもパニくってたので・・・^^;


3 ● b-wind
●50ポイント
複数のWindow.onloadを可能にするものと考えてよろしいのでしょうか?

実質的にそういう目的で使われるものと思います。


これよりあとにWindow.onloadが出てくると、無効になると考えてよろしいのでしょうか。

同じやり方をすればさらにいくつもの処理を実行する事が可能ですが、後続のスクリプトが考慮してくれない場合

window.onload = myFunction;

等、上書きされてしまう可能性はあります。

出来れば後ろに置く方が確実です。

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

◎質問者からの返答

完璧です!!

関連質問


●質問をもっと探す●



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