This commit is contained in:
parent
16d9851535
commit
53b6355baf
21 changed files with 385 additions and 132 deletions
|
|
@ -2,32 +2,34 @@
|
|||
// <header id="header" w3-include-html="components/header.html"></header>
|
||||
|
||||
|
||||
function includeHTML() {
|
||||
async function includeHTML() {
|
||||
const elements = document.querySelectorAll("[w3-include-html]");
|
||||
|
||||
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;
|
||||
}
|
||||
if (elements.length === 0) {
|
||||
return; // Plus rien à charger
|
||||
}
|
||||
|
||||
const promises = Array.from(elements).map(async (elmnt) => {
|
||||
const file = elmnt.getAttribute("w3-include-html");
|
||||
if (!file) return;
|
||||
|
||||
try {
|
||||
const response = await fetch(file);
|
||||
if (response.ok) {
|
||||
const html = await response.text();
|
||||
elmnt.innerHTML = html;
|
||||
} else {
|
||||
elmnt.innerHTML = "Page not found.";
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(`Error loading ${file}:`, error);
|
||||
elmnt.innerHTML = "Error loading content.";
|
||||
}
|
||||
|
||||
elmnt.removeAttribute("w3-include-html");
|
||||
});
|
||||
|
||||
// Attendre que tous les fichiers soient chargés
|
||||
await Promise.all(promises);
|
||||
await includeHTML();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue