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
World of Warship: Battaglie Asimmetriche nel 14.5
nereya ha aperto una nuova discussione: Nuova Frontiera
The Coven → Negli scorci di luce delle paludi della Louisiana fioriscono nuove ombre. Estend e la Congrega ti aspettano per vivere emozionanti avventure!
New Wizarding World: Un nuovo Medimago
Sea of Conquest: Incontra Demona Rood! 🔥
anacronista ha recensito Storie di Agarthi
Exclusive Villa GdR → Las Vegas, azzardo, vizi, soldi, intrighi... Più le sue luci sono scintillanti, più le sue ombre sono oscure. La città che non dorme mai, vi aspetta.
Nyx Insight - Project S.E.T.: Setting Refresh Time ✨
mhorras1988 ha recensito Fengard
prosperus ha recensito Exclusive Villa GdR
visanders ha aperto una nuova discussione: Aiuto ricerca Gioco
Left to Survive → Left To Survive è un gioco FPS con un'ambientazione post-apocalittica in cui gli Zombi hanno schiavizzato la Terra e ne hanno preso il controllo!
kooei ha recensito Il Paiolo Magico
emiko ha recensito La Tana del Ladro
Entropia Universe: 💥 Evento Summer Mayhem 2025
Football Team Soccer → Diventa una stella del calcio! Crea, allena ed equipaggia il tuo giocatore. Unisciti a un club e vinci in Football Team Game!
Mud - Giochi di ruolo online su client telnet..scopri i Mud e la loro storia!
MMO - Perché gli MMO sono tra i generi di videogiochi più popolari in questo moment
Ignis Fatuus Gdr - Intervista alla gestione del play by chat urban fantasy Ignis Fatuus Gdr
Favole e Fiabe - Lista completa dei giochi di ruolo online ambientati nel folle mondo delle favole
Tutorial per creare avatar - Video - Tutorial per realizzare, con photoshop, un avatar per gdr
Racconti - Leggi i racconti degli utenti di GDR-online. Fantasy, Western Fantascienza e tanto altro!
PbC epidemia del web? - Gioco di Ruolo testuale (gdr by chat): un fenomeno squisitamente nostrano, o epidemia del Word Wide Web?
Anima - Intervista al gestore di Anima.. il play by chat fantascientifico con i robottoni!