<!DOCTYPE html>
<html>
<body>

<script id="myScript" src="demo_defer.js" defer></script>

<p>The script above requests information from the paragraph below. Normally, this is not possible, because the script is executed before the paragraph exists.</p>

<p id="p1">Hello World!</p>

<p>However, the defer attribute specifies that the script should be executed later. This way the script can request information from the paragraph.</p>

<p>You can double-check if the script was executed later, by clicking the button below.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    var x = document.getElementById("myScript").defer;
    document.getElementById("demo").innerHTML = x;
}
</script>

</body>
</html>