I have an all HTML/CSS website being hosted by Github Pages (which appears to only support "static pages"?). How can I include the HTML of my master HTML page (header and footer) into another HTML page? I would be open to using HTML, Javascript, Jquery, etc to accomplish this (as long as my pages would still qualify as "static"). Thank you for the help.
Asked
Active
Viewed 2,197 times
2
-
Would you consider to use ` – Chaska Jul 27 '18 at 03:02
-
Sounds like a JavaScript SPA framework would be the way to go. I recommend Aurelia or React. The result will be very static in the sense of content. Just a few JS files, but the site will be as dynamic as you like – Aluan Haddad Jul 27 '18 at 03:04
-
Possible duplicate of [Including external HTML file to another HTML file](https://stackoverflow.com/questions/17148357/including-external-html-file-to-another-html-file) – Dinesh Ghule Jul 27 '18 at 03:10
1 Answers
2
Include the HTML
Including HTML is done by using a include-html attribute:
<div include-html="content.html"></div>
Add the JavaScript
HTML includes are done by JavaScript.
<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("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("include-html");
includeHTML();
}
}
xhttp.open("GET", file, true);
xhttp.send();
/*exit the function:*/
return;
}
}
}
</script>
Call includeHTML() at the bottom of the page:
<script>
includeHTML();
</script>

Dinesh Ghule
- 3,423
- 4
- 19
- 39