Marking clicked links as visited
by anilsardemann
JavaScript
document.addEventListener('DOMContentLoaded', () => {
const EXPIRATION_TIME = 7 * 24 * 60 * 60 * 1000;
function saveVisitedLink(url) {
let visitedLinks = JSON.parse(localStorage.getItem('visitedLinks')) || [];
const timestamp = new Date().getTime();
visitedLinks.push({ url, timestamp });
localStorage.setItem('visitedLinks', JSON.stringify(visitedLinks));
}
function removeExpiredLinks() {
let visitedLinks = JSON.parse(localStorage.getItem('visitedLinks')) || [];
const now = new Date().getTime();
visitedLinks = visitedLinks.filter(link => now - link.timestamp < EXPIRATION_TIME);
localStorage.setItem('visitedLinks', JSON.stringify(visitedLinks));
}
function markVisitedLinks() {
let visitedLinks = JSON.parse(localStorage.getItem('visitedLinks')) || [];
document.querySelectorAll('YOURCLASSNAME').forEach(link => {
if (visitedLinks.some(visited => visited.url === link.href)) {
link.classList.add('visited');
}
});
}
document.querySelectorAll('YOURCLASSNAME').forEach(link => {
link.addEventListener('click', () => {
saveVisitedLink(link.href);
removeExpiredLinks();
markVisitedLinks();
});
});
removeExpiredLinks();
markVisitedLinks();