2016-08-10 12 views
0

「onload」の属性が<body>のHTMLであるかどうかを知りたい。このコードスニペットは、(Java Scriptを学ぶための)本を読んでいる間に見ました。<body> HTMLとJavaScriptの "onload"?

<html> 
    <body onload="alert('hi')";> 
     ... 
    </body> 
</html> 

私は<体>タグは、HTML仕様の一部であることを知っています。 HTML要素の場合、属性を持つことができます。これで行くと、それは<体>の属性であることを意味するのでしょうか?それともJavaScriptの一部ですか?この合併はどのように可能ですか?

もしそうであれば、HTMLが最初に開発されたときに、作成者はイベント駆動型のものが(他の言語によって)あるかもしれないと思ったのでしょうか?

誰でもこのことを理解するのを手伝ってもらえますか?この点まで、私がそれを参照したことは、疑いのあるものに何の洞察も投げかけなかったので、この質問をしています。

+1

"そうであれば、HTMLが最初に開発されたときに、作成者がイベントドリブンなものが(他の言語によって)適用されるかもしれないと思ったのでしょうか?最初は、いいえ、HTML仕様は何度も改訂されています(これがHTML5を持っている理由です)。 javascriptが開発されると、DOM APIにイベントフックが追加されました。 – JustH

+0

ご回答いただきありがとうございます。あなたがDOM apiと言ったときの小さなことは、まさにそれは何ですか?私はDOMモデル(パーサ)について聞いたことがあります、あなたがここで言及しているのと同じですか?もしいくつかのポインタを提供できるなら、素晴らしいだろう。 – CuriousMind

答えて

2

イベントハンドラをHTML要素に接続する方法の1つは、onEVENTNAMEという名前の属性を与えることです。このような属性の値は、イベントがエレメント上でトリガーされたときに実行されるJavascriptのストリングです。あなたはほぼ確実に何かを見たことがあります

<button onclick="doSomething()"> 

これは同じ種類のものです。

Global AttributesのHTML仕様では、任意のHTML要素でonload(他の多くのonXXX属性の中で)を使用できます。 <body> elementに固有の多数のonXX属性もあります。

この点に関して<body>要素の特殊な唯一の点は、イベントハンドラの一部がwindowオブジェクトに割り当てられていることです。したがって、あなたの例はおおよそ次のようになります:

window.onload = function() { 
    alert('hi'); 
}; 
+1

これに加えて、OPはこの属性の由来についても疑問を投げかけているようです。 'onload' *はHTML仕様の一部です:https://www.w3.org/TR/html5/を参照してください。 sections.html#the-body-elementおよびhttps://www.w3.org/TR/html5/webappapis.html#event-handlers – TAGraves

+1

これはHTMLとDOMの一部です。 JavaScriptは、ブラウザーで使用できるデフォルトの言語であるため、画像内にのみあります。実際、何年もの間、IEでVBScriptを使うことができます:)。 –

+0

@Barmar:厳密な意味で、onloadは要素の属性ですか? – CuriousMind

0

onload属性は、オブジェクトがロードされたときに発生します。 onloadは、Webページがすべてのコンテンツ(画像、スクリプトファイル、CSSファイルなどを含む)を完全に読み込んだ後にスクリプトを実行するために、最もよく使用されます(<body>)。要素に

<img src="image.gif" onload="alert('image loaded')"> 

従って、上記のコードのonload、アラート」:

<body>, <frame>, <img>, <link>, <script> and <style> 

例のようにサポートされているため

構文この少数のHTMLタグの下に、

<element onload="script"> 

ありますイメージがロードされた後、直ちに表示されます。

関連する問題