41598
**[MDNのWebGLチュートリアル](https://github.com/mdn/webgl-
examples/blob/ea1c73ff3ec8d069d890cda0495052bb44a8b073/tutorial/sample1/index.html)で、`<script>`タグを
`</body>`タグの後ろに記述しているのですが**

* * *

**Q1.`<script>`タグを、`</body>`タグの外に記述しても良い？**

* * *

**Q2.`<script>`タグを、`</body>`タグの外に記述するメリットは？**  
・どうしてこのような書き方をしているのでしょうか？  
・WebGLだから？？
CC BY-SA 3.0
2018-02-09T01:06:29.327
41597
2018-02-10T06:45:54.990
2018-02-09T04:42:39.527
19110
7886
question
javascript
<script>タグを </body>タグの後ろに記述しても良い？
> Q1.<script>タグを、</body>タグの外に記述しても良い？

ダメです。

<https://html.spec.whatwg.org/multipage/semantics.html#the-html-element>

```

    Content model:
        A head element followed by a body element
    
```

<https://html.spec.whatwg.org/multipage/scripting.html#the-script-element>

```

    Contexts in which this element can be used:
        Where metadata content is expected.
        Where phrasing content is expected.
        Where script-supporting elements are expected.
    
```

> Q2.<script>タグを、</body>タグの外に記述するメリットは？

とくにないと思われます。</body>の直前に書いても同じですし、他の場所に置いて `defer`
属性を付けてもよいです。このHTMLを書いた人のミスでしょう。

追記:  
そもそも、HTMLパーザによって</body>後に書いてるタグはbody要素の子として追加される と仕様に書いてありました。DevTools
などで見ると<script>が移動しているのがわかります。  
<https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-afterbody>

```

    12.2.6.4.19 The "after body" insertion mode
       → Anything else
         Parse error. Switch the insertion mode to "in body" and reprocess the token.
    
```
CC BY-SA 3.0
2018-02-09T01:30:29.220
41598
2018-02-10T06:45:54.990
2018-02-10T06:45:54.990
3475
3475
41597
answer