Voglio salvare localmente un oggetto che ha riferimenti circolari. Quali sono le mie opzioni?Come salvare un oggetto con riferimenti circolari?
Il mio primo pensiero è stato l'utilizzo dell'archiviazione locale HTML5 ma non è possibile eseguire la stringa di questo oggetto a causa dei riferimenti circolari.
In particolare sto tentando di salvare l'oggetto DOMSelection della selezione corrente.
Esempio:
var sel = window.getSelection();
var selstring = JSON.stringify(sel); // Breaks here ...
localStorage.setItem("selection",selstring);
L'unico modo ho potuto ottenere la stringa i al lavoro ora è ignorando alcuni oggetti in questo modo:
var selstring = JSON.stringify(sel,function(k,v){
if(k=="anchorNode" ||
k=="baseNode" ||
k=="extentNode" ||
k=="focusNode") return undefined;
return v;
});
Ma questo mi lascia con un oggetto DOMSelection piuttosto vuoto che non è abbastanza per quello di cui ho bisogno.
C'è qualche altro modo per salvare questo oggetto? L'unico requisito è che funzioni nel safari mobile, qualsiasi altra cosa vada davvero. La soluzione può essere in javascript o jquery (o qualsiasi altra js lib se necessario).
Grazie per l'aiuto che puoi fornire.
Vedere http://stackoverflow.com/questions/4001474/son-standard-way-of-referencing-an-object-by-identity-for-eg-circular-refere –