JavaScript: salvare le pagine visitate nel web storage

JavaScript: salvare le pagine visitate nel web storage

Il web storage ci permette di memorizzare qualsiasi dato nel browser. Questo è anche il caso delle pagine visitate all'interno di un sito.

Si tratta semplicemente di creare un array di URL e salvarlo nel web storage:


'use strict';

class URLStorage {
    constructor() {
        this.create();
        this.action();
    }

    create() {
        if(sessionStorage.getItem('url-storage') === null) {
			const obj = {};
			obj.items = [];
			sessionStorage.setItem('url-storage', JSON.stringify(obj));
		}
    }

    add(url) {
       const obj = JSON.parse(sessionStorage.getItem('url-storage'));
	   obj.items.push(url);
	   sessionStorage.setItem('url-storage', JSON.stringify(obj)); 
    }

    action() {
        const baseURL = location.protocol + '//' + location.host;
        const links = document.querySelectorAll("a[href^='" + baseURL + "']");
        const self = this;

        links.forEach(link => {
            link.addEventListener('click', e => {
                e.preventDefault();
                self.add(link.href);
                window.location = link.href;
            },false);
        });
    }
}

Registriamo un handler sul click dei link interni del sito per aggiungere l'URL all'array memorizzato nel web storage. Possiamo usare la classe appena definita in questo modo:


document.addEventListener('DOMContentLoaded', () => {
	const urlStorage = new URLStorage();
});

Torna su