`;
}
```
### Event Listener-administrasjon
Etter hver rendering festes event listeners på nytt:
```javascript
function attachEventListeners() {
const productsLink = document.querySelector('[data-page="products"]');
const cartLink = document.querySelector('[data-page="cart"]');
if (productsLink) {
productsLink.addEventListener('click', function(e) {
e.preventDefault();
navigateToProducts();
});
}
// ... flere listeners
}
```
## 💾 Datapersistering
### LocalStorage-integrasjon
Handlekurvdata persisteres automatisk:
```javascript
function saveCartToStorage() {
try {
localStorage.setItem('webstore_cart', JSON.stringify(cart));
} catch (error) {
console.error('Feil ved lagring av handlekurv til localStorage:', error);
}
}
function loadCartFromStorage() {
try {
const savedCart = localStorage.getItem('webstore_cart');
if (savedCart) {
const parsedCart = JSON.parse(savedCart);
return parsedCart.map(item => ({
...item,
product: products.find(p => p.id === item.productId) ||
{ id: item.productId, name: 'Ukjent Produkt', price: 0 }
}));
}
} catch (error) {
console.error('Feil ved lasting av handlekurv fra localStorage:', error);
}
return [];
}
```
## 🚀 Bruk
### Kjøring av applikasjonen
1. Åpne `index.html` i en nettleser
2. Applikasjonen initialiseres automatisk
3. Naviger mellom produkter, produktdetaljer og handlekurv
4. Handlekurvtilstand persisteres på tvers av nettlesersesjoner
### Nøkkelfunksjoner
- **Produktbrowsing**: Vis alle produkter i rutenettlayout
- **Produktdetaljer**: Klikk på hvilket som helst produkt for detaljert visning
- **Handlekurv**: Legg til, fjern og modifiser antall
- **Persistent handlekurv**: Handlekurvinnhold lagret i localStorage
- **Responsiv design**: Fungerer på desktop og mobil
- **Brukernotifikasjoner**: Tilbakemelding for alle brukerhandlinger
## ♿ Tilgjengelighet og semantisk HTML
Applikasjonen er bygget med tilgjengelighet i fokus:
### Semantiske HTML-elementer
- **``**, **``**, **`