Finestre modali salvate con cookies o local storage postato il 24/10/2022 13:25:53 nel forum programmazione, gdrcd, open source, hosting
Seguendo i suggerimenti indicati qui:
https://www.gdr-online.com/readforum.asp?id=197803
sono riuscita a far in modo che le finestre modali siano ridotte a icona.
Qualcuno saprebbe indirizzarmi su un modo per "conservare" le modali ridotte a icona anche se la pagina cambia? In particolare, ipotizziamo che io sia in chat e apra due schede avatar in popup cliccando su due diversi personaggi mittenti e li riduca ad icona. Vorrei poterli preservare anche se esco dalla pagina della chat e navigo per le altre pagine della land.
E' fattibile?
A naso penso che potrei usare i cookies o local storage, però non sono così addentro nella programmazione (soprattutto in javascript) per avere una vaga idea del come.
Ogni aiuto sarebbe assai gradito...
Pagine → 1
04/11/2022 00:07:00
Innanzitutto ti consiglierei di usare localStorage ma il sessionStorage. La differenza tra i due è sostanzialmente che nel primo i dati restano in memoria fino a quando non viene pulita la cache o fino a quando lo script non ordina la pulizia, il secondo pulisce i dati alla chiusura del browser o del tab.
usare sessionStorage è semplice la sua sintassi è:
sessionStorage('chiave','valore');
o
sessionStorage.chiave = valore
c'è da ricordarsi che come valore vengono accettate solo stringhe e non array o oggetti per cui se vuoi salvare un array con l'elenco delle finestre di popup aperte devi prima trasformarlo in stringa e quando lo recuperi riconvertirlo.
Si fa facilmente con una forma tipo questo esempio
sessionStorage.modal = JSON.stringify(modal );
var modal = JSON.parse(sessionStorage.modal);
Questa è la parte semplice, la parte più lavoriosa è che nella funzione delle modali, sevi prendere e salvare quando ne apri una devi prima leggere il contenuto di
sessionStorage.modal
ritrasformarlo in un array come ho scritto sopra, aggiornare o salvare nell'array i dati della modale che ti interessano
fare in modo che quando chiudi la modale con la X i dati di questa vengano rimossi dal
sessionStorage.modal
e a fine della pagina nel footer mettere ciclare sessionStorage.modal per riaprire le finestre.
C'è da considerasre 3/4 del tuo problema dipende dal fatto che il gdrcd ricarica tutto quando passi da una pagina all'altra, ricaricando solo la porzione necessaria tramite ajax le modali ti rimarrebbero aperte senza doverle riaprire ogni volta.
04/11/2022 11:03:24
Intanto grazie per la risposta ^_^
Con onestà, ammetto che da smanettona non-programmatrice, mi mancano proprio le basi per andare avanti.
Ho chiesto anche su Stack Overflow e questo è quello che mi è stato risposto.
You have a function that you call with few parameters. I would save those parameters in localStorage, then when reloading the page I would read the content of LS and call the function.
if (modals) {
modals = JSON.parse(modals);
} else {
modals = [];
}
modals.forEach(args => {
modalWindow(...args);
});
function modalWindow(name, title, url, width, height) {
...
modals.push([name, title, url, width, height]);
localStorage.setItem('modals', JSON.stringify(modals));
}
You probably also want to remove the modal from the list when you close it. You can come up with a better data structure that will allow you to do that.
Scusate se posto la risposta così com'è, quindi in inglese.
Ma anche così, non ho proprio le competenze tecniche per riuscire a ottenere qualcosa :(
Per il momento, credo che metterò questo task in stand-by :(
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Pirates of the Caribbean: Tides of War: Quarti di finale del torneo
DarkOrbit: Galactic Strife & Buono gratis 💥
World of Tanks → Lanciati in epiche battaglie spalla a spalla con altri giocatori. Conquista la supremazia nel mondo dei Carri Armati!
I dati del generatore di rank sono stati aggiornati!
Legacy of Magic: Il vecchio e la mappa
outrunstaff ha risposto alla discussione: Project OutRun PbC
meleys ha aperto un annuncio di ricerca: Westeros GDR ricerca Tester
Pandora Upside Down High School → La prima scuola per sovrannaturali al mondo vi attende! Scoprite il vostro cammino Ancestrale relazionandovi con i compagni e le attività dei club
Lineage II: Black Friday di Lineage II
Il gestore di Ultima Espiazione Gdr ha risposto alla recensione di mancoicani
zannata ha recensito Sigil - La Città dei Portali
CRSED: F.O.A.D. → Brutale sparatutto MMO in cui vince l'ultimo giocatore che resta in vita nell'arena! Ogni giocatore sarà accompagnato da armi realistiche e magie!
Sea of Conquest: Tuffati nel mistero! 🌊
Pirates of the Caribbean: Tides of War: Evento di Ringraziamento!
Fervm: Aggiornamenti: Il Diario!
Hero Wars: Arrivano le Teenage Mutant Ninja Turtles! :-D
War Thunder → Aviazione, veicoli corazzati e flotte militari della seconda guerra mondiale. Parteciperai a tutte le principali battaglie!
Politik Game - Articolo di Rassegna Stagna su quando la politica diviene ludica. Ma veramente.
Wheel of Blood - Intervista alle gestione di Wheel of Blood.. il play by chat su Games of Thrones!
Gioco del Pollo - Fenomeno del Gioco del Pollo: un'analisi della sua crescente popolarità
Plarium MMO - In questo articolo vi presentiamo il portale di MMO Plarium con una base di oltre 150 milioni di giocatori!
OldOak - Intervista al gestore del play by chat fantasy OldOak
Generi Preferiti - Scopri, grazie ai nostri dati statistici, quali generi di giochi l'utenza del portale preferisce!