0

これら 2 つのコードの違いは何ですか。

サンプル 1:

<script type="text/javascript">
     function myfunc () {
                alert('hi');
            }
         window.onload = myfunc;
</script>   

サンプル 2:

<script type="text/javascript">
     alert('hi');//no function used 
</script>

両方のコードが正常に実行されます。

4

5 に答える 5

1

1 つ目はページの読み込みが完了した後に実行され、もう 1 つ目は解析が完了するとすぐに実行されます

于 2012-12-27T06:05:47.760 に答える
1

サンプル 1 とサンプル 2 は同じことを行います。ただし、サンプル 1 の window.onload は、HTML コンテンツ (およびすべての画像、スタイルシート、リモート スクリプト) が完全に読み込まれたときに関数を実行します (すべての DOM 要素が読み込まれたときではありません)。

サンプル 2 はサンプル 1 と同じですが、スクリプトを即座に実行します。完全にロードするのに時間がかかるページがある場合、違いがわかります。テスト ページは基本的なもので、同時に実行されているように見えた可能性があります (実際にはサンプル 2 の後に window.onload が実行されたとき)。

window.onload は通常、ページのロード後に Javascript コードを実行する必要がある場合に使用されます。サンプル 2 のインライン スクリプトは、特定の DOM 要素がブラウザにロードされた後、JavaScript を即座に実行する場合などに使用できます。

于 2012-12-27T06:19:03.063 に答える
1

window.onload、スクリプトが実行される前にすべての DOM 要素がロードされるようにします。つまり、スクリプトが DOM 要素を変更または使用する場合は、それをwindow.onload(またはフレームワークで同等のものに) 添付する必要があります。DOM から独立している場合は、どちらでも使用できます。詳細については、Mozilla Developer Networkページを参照してください。実行されないインライン スクリプトはwindow.onload、パーサーが到達すると実行できることに注意してください。残りの DOM が読み込まれるのを待ちません。

于 2012-12-27T06:03:35.670 に答える
0

onload画像、音声などを含むページが完全に読み込まれたときにイベントがトリガーされます。ただし、ステートメントを直接記述すると、即座に実行されます。したがって、オンロード アラートは他のアラートの後にトリガーされます。

このデモをチェック

于 2012-12-27T06:26:03.147 に答える
0

もう 1 つの重要な違いは、2 番目のスクリプトがすぐに実行されるため、そのスクリプトの後に続く DOM 要素にアクセスできないことです。

たとえば、タグの末尾の直前に DIV 要素がある場合、document.getElementById (または同様の DOM アクセス関数) を使用してその特定の DIV を取得することはできません。

しかし、ページの読み込み後にのみ実行される最初のスクリプトを使用すると、DOM 内の任意の要素にアクセスできます。

于 2012-12-27T06:49:23.377 に答える