Il session storage ci permette di memorizzare qualsiasi dato nella sessione corrente del 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 session storage:
'use strict';
const URLStorage = {
init() {
this.create();
this.action();
},
create() {
// Evito di sovrascrivere i dati già presenti
if( sessionStorage.getItem( "url-storage" ) === null ) {
let obj = {};
obj.items = [];
sessionStorage.setItem( "url-storage", JSON.stringify( obj ) );
}
},
add() {
const url = location.href; // URL corrente
let obj = JSON.parse( sessionStorage.getItem( "url-storage" ) );
obj.items.push( url );
sessionStorage.setItem( "url-storage", JSON.stringify( obj ) );
},
action() {
// Seleziono i link interni al sito
const self = this,
host = location.host,
links = document.querySelectorAll( "a[href^='http://" + host + "']" );
links.forEach(link => {
// Registro l'URL sul click
link.addEventListener( "click", e => {
e.preventDefault();
const target = link.href;
self.add();
window.location = target;
}, false);
});
}
};
document.addEventListener( "DOMContentLoaded", ()=> {
URLStorage.init();
});