5

どちらも同じことをしますが、一方を他方よりも使用する特定の利点があることを知りたいだけですか?

Event.observe(window, "load", function(){
//do something
});

window.onload = function(){
//do something
}
4

2 に答える 2

11

違いはwindow.onload、DOM レベル 0 イベント モデルで定義され、以前に登録されたすべてのイベントを消去することです。これは、古い API からの「ネイティブ」呼び出しです。

プロトタイプ JavaScript フレームワークのEvent.observeは、使用可能な最適なイベント アタッチャーを決定します。ファサードのパターン。最新のブラウザでは、addEventListenerが呼び出されます -attachEventバージョン 9 より前の Internet Explorer の場合。古いブラウザでは、onloadが呼び出されます。

Event.observeプロトタイプ.loadの場合や jQuery の場合など、ファサードが利用可能な最適なオプションを選択することは明らかです。

DOM レベル 2 イベント モデルのメソッドは、オブザーバーとして機能し、以前のハンドラーを消去しないため、DOM レベル 0 イベント モデル メソッドよりも優先されます。

于 2012-10-12T12:41:26.177 に答える
0

quirksmode.org のイベントの紹介を読んでください。違いは、従来のモデル高度なモデルの違いです。M$ は W3 標準をサポートしている/サポートしていないため、ラッパーが必要であり、区別する必要があります。

于 2012-10-12T12:45:51.437 に答える