Я хочу сохранить локально объект, который имеет циклические ссылки. Какие у меня варианты?
Моей первой мыслью было использование локального хранилища HTML5, но я не могу структурировать этот объект из-за циклических ссылок.
В частности, я пытаюсь сохранить объект DOMSelection текущего выделения.
Пример:
var sel = window.getSelection();
var selstring = JSON.stringify(sel); // Breaks here ...
localStorage.setItem("selection",selstring);
Единственный способ заставить stringify работать сейчас, это игнорировать некоторые объекты, например:
var selstring = JSON.stringify(sel,function(k,v){
if( k=="anchorNode" ||
k=="baseNode" ||
k=="extentNode" ||
k=="focusNode") return undefined;
return v;
});
Но это оставляет меня с довольно пустым объектом DOMSelection, которого недостаточно для того, что мне нужно.
Есть ли другой способ сохранить этот объект? Единственное требование состоит в том, что он работает в мобильном сафари, все остальное идет действительно. Решение может быть либо в javascript, либо в jquery (или в любом другом js lib, если это необходимо).
Спасибо за любую помощь, которую вы можете предоставить.