Friday, December 12, 2025
HomeLanguagesJavascriptWhy don’t self-closing script elements work ?

Why don’t self-closing script elements work ?

In HTML, the <script> tag is used to include scripts or code on a web page. Scripts can be used to add interactivity to a webpage, such as dynamically updating content or performing calculations. When including a script on a webpage, it is important to ensure that the code is properly formatted and that there are no syntax errors. One common mistake that developers make is attempting to use a self-closing <script> tag, such as <script />. However, self-closing script elements do not work and can cause unexpected issues.

So let us understand the concept using some code examples.

Example 1: Filename: index.html

 

HTML




<!DOCTYPE html>
<html>
  
<head>
    <meta charset="UTF-8">
    <title>Self-closing script element</title>
</head>
  
<body>
  
    <h1>Hello World!</h1>
    <button onclick="myFunction()">Click me</button>
    <script src="index.js" />
</body>
  
</html>


Filename: index.js

Javascript




function myFunction() {
    window.alert("Welcome to neveropen");
}


In the above example, self-closing script elements do not work in HTML. This is because the contents of the <script> tag is treated as text by the browser until the closing </script> tag is encountered. If the tag is self-closing, the browser does not know where the script ends and will not execute it.

So, if you use a self-closing <script> tag, the script will not work on any file, not just the first file. To fix this issue, you should use a standard <script> tag with a closing tag when including scripts on a webpage. This will ensure that the script is properly interpreted by the browser and executed as intended.

Output:

 

Example 2: Filename: index.html

HTML




<!DOCTYPE html>
<html>
  
<head>
    <meta charset="UTF-8">
    <title>Working script element</title>
    <script src="index.js"></script>
</head>
  
<body>
    <h1>Hello World!</h1>
    <button onclick="myFunction()">Click me</button>
</body>
  
</html>


Filename: index.js

Javascript




function myFunction() {
    window.alert("Welcome to neveropen");
}


In this example the script part will work because we are not using a self-closing tag instead we are using standard <script> tag with a closing tag when including scripts on a webpage.

Output:

 

The reason that self-closing script tags do not work is because the contents of the <script> tag are treated as text by the browser until the closing </script> tag is encountered. If the tag is self-closing, the browser does not know where the script ends and will not execute it. This behaviour is consistent with the HTML specification, which states that the <script> tag should not be self-closing.

It is worth noting that some older browsers may attempt to parse self-closing script tags as valid script tags, but this behaviour is not reliable and should not be relied upon. Additionally, some online validators may not flag self-closing script tags as errors, but this does not mean that they are valid.

To avoid issues with self-closing script tags, it is important to always use a standard <script> tag with a closing tag when including scripts on a webpage. This will ensure that the script is properly interpreted by the browser and executed as intended.

In summary, self-closing script elements do not work in HTML because the browser does not know where the script ends and will not execute it. Developers should always use a standard <script> tag with a closing tag when including scripts on a webpage to avoid unexpected issues.

Whether you’re preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, neveropen Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we’ve already empowered, and we’re here to do the same for you. Don’t miss out – check it out now!
RELATED ARTICLES

Most Popular

Dominic
32445 POSTS0 COMMENTS
Milvus
105 POSTS0 COMMENTS
Nango Kala
6813 POSTS0 COMMENTS
Nicole Veronica
11951 POSTS0 COMMENTS
Nokonwaba Nkukhwana
12028 POSTS0 COMMENTS
Shaida Kate Naidoo
6947 POSTS0 COMMENTS
Ted Musemwa
7198 POSTS0 COMMENTS
Thapelo Manthata
6893 POSTS0 COMMENTS
Umr Jansen
6881 POSTS0 COMMENTS