Current directory: /home/klas4s23/domains/585455.klas4s23.mid-ica.nl/public_html/Gastenboek/uploads
/**
* Component Loader
* Dynamically loads HTML components into the page
*/
async function loadComponent(elementId, componentPath) {
try {
const response = await fetch(componentPath);
if (!response.ok) {
throw new Error(`Failed to load ${componentPath}: ${response.status}`);
}
const html = await response.text();
const element = document.getElementById(elementId);
if (element) {
element.innerHTML = html;
} else {
console.error(`Element with id '${elementId}' not found`);
}
} catch (error) {
console.error('Error loading component:', error);
}
}
/**
* Load all components
*/
async function loadAllComponents() {
await Promise.all([
loadComponent('header-component', 'components/header.html'),
loadComponent('consent-banner-component', 'components/consent-banner.html'),
loadComponent('home-component', 'components/home.html'),
loadComponent('about-component', 'components/about.html'),
loadComponent('services-component', 'components/services.html'),
loadComponent('projects-component', 'components/projects.html'),
loadComponent('contact-component', 'components/contact.html'),
loadComponent('footer-component', 'components/footer.html')
]);
// Dispatch custom event when all components are loaded
window.dispatchEvent(new Event('componentsLoaded'));
}
// Load components when DOM is ready
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', loadAllComponents);
} else {
loadAllComponents();
}