Close HTML Script Tag

Iswanto San picture Iswanto San · Apr 9, 2013 · Viewed 9.3k times · Source

I just curious why my JavaScript can't run (tested in Firefox and IE) if I write the <script> tag like this:

<script type="text/javascript" src="script.js"/>

It will work if I change that line to:

<script type="text/javascript" src="script.js"></script>

So my question is: why I can't close the script tag in the start tag since I don't have any content inside it.

My JavaScript code is simple, just:

alert("test");

Notes: I check firefox error console and no error.

Answer

Quentin picture Quentin · Apr 9, 2013

The concept of self-closing tags is an XML concept. You can't use them in HTML. (You can use them in XHTML, but only if the document is served with an XML content-type, not if it is served as text/html).

In HTML some elements (such as <img>) cannot have any content, so they don't have end tags).

Since a script can have a src attribute or the script be can inside the element, <script> is not one of them.

(HTML 5 allows a / character to appear at the end of a start tag for an element that is defined as EMPTY, but it is just sugar for people addicted to XML and has no meaning in the language).