31452


**document.body.onloadはどういう位置づけの書き方でしょうか？**  
・以前の書き方？  
・現在でも通用する？？  
・HTML 要素 の onload属性と関係している？  
・[ドキュメント](https://developer.mozilla.org/ja/docs/Web/API/Document/body)はどこかにあるでしょうか？

・何となくwindow.onloadを使用した方が良いとは思うのですが、違いはあるでしょうか？  
・気になったので質問しました


CC BY-SA 3.0
2016-12-27T02:49:21.270
31448
2016-12-27T06:27:38.637
7886
question
javascript
document.body.onloadは以前の書き方？


> 現在でも通用する？

現在でも通用します。  
ただ複数のイベントハンドラを使う時には、イベントリスナーを使った方がスマートだと思います。

> HTML 要素 の onload属性と関係している？

body要素（種類としてHTML要素ならその通り)のonload 属性

> ドキュメントはどこかにあるでしょうか？

例えば、これ[body 要素](https://developer.mozilla.org/ja/docs/Web/HTML/Element/body)

> 何となくwindow.onloadを使用した方が良いとは思うのですが、違いはあるでしょうか？

違いはありません。

[body
要素](https://developer.mozilla.org/ja/docs/Web/HTML/Element/body)のonload属性の説明で

> この要素はグローバル属性を持ちます。

とあるので、グローバル変数として[window](https://developer.mozilla.org/ja/docs/Web/API/Window)のプロパティとしてぶら下がっているだけで、

この[window](https://developer.mozilla.org/ja/docs/Web/API/Window)の説明を見ると、`window`自体のプロパティやイベントハンドラとしてはないのが分かります。

例えば、

[code]

    <body onload="alert('test')">
    
[/code]

のようにしてページを開いた後、  
javascript コンソールウインドウで

[code]

    window.onload === document.body.onload
    
[/code]

とすると  
`true`が返ることで確かめられます。  
(Chrome だと`window.onload` の内容が

[code]

    function onload(event) {
      alert('test')
    }
    
[/code]

になっていることが確認できる）


CC BY-SA 3.0
2016-12-27T04:47:04.590
31452
2016-12-27T06:27:38.637
2016-12-27T06:27:38.637
5044
5044
31448
answer