Many developers have been looking for solutions to do html includes like standard SSI
<!--#include file="header.html" -->
In a way that allows us to test locally without the need for a server.
W3S and some others have offered great solutions for this such as
https://www.w3schools.com/howto/howto_html_include.asp
But I cannot get this to work for some reason. I open up the html file in my browser and content.html does not get injected into the page.
UPDATE
This is my html page test.html
<!DOCTYPE html>
<html>
<head>
<script>
function includeHTML() {
var z, i, elmnt, file, xhttp;
/* Loop through a collection of all HTML elements: */
z = document.getElementsByTagName("*");
for (i = 0; i < z.length; i++) {
elmnt = z[i];
/*search for elements with a certain atrribute:*/
file = elmnt.getAttribute("w3-include-html");
if (file) {
/* Make an HTTP request using the attribute value as the file name: */
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4) {
if (this.status == 200) {elmnt.innerHTML = this.responseText;}
if (this.status == 404) {elmnt.innerHTML = "Page not found.";}
/* Remove the attribute, and call this function once more: */
elmnt.removeAttribute("w3-include-html");
includeHTML();
}
}
xhttp.open("GET", file, true);
xhttp.send();
/* Exit the function: */
return;
}
}
}
</script>
</head>
<body>
<div w3-include-html="content.html"></div>
<script>
includeHTML();
</script>
</body>
</html>
my content.html page is the same one in the link.
When I open test.html in my browser, the content.html code is not included.