我想本地保存有循環引用的對象。我有什麼選擇?如何用循環引用保存對象?
我首先想到的是用HTML5本地存儲空間,但我不能這個對象字符串化由於循環引用。
具體我想保存當前選擇的DOMSelection對象。
例子:
var sel = window.getSelection();
var selstring = JSON.stringify(sel); // Breaks here ...
localStorage.setItem("selection",selstring);
我能得到的字符串化到現在的工作的唯一辦法是通過忽略某些物體,像這樣:
var selstring = JSON.stringify(sel,function(k,v){
if(k=="anchorNode" ||
k=="baseNode" ||
k=="extentNode" ||
k=="focusNode") return undefined;
return v;
});
但是,這給我留下了一個相當空DOMSelection對象,對於我所需要的是不夠的。
是否有其他方法可以讓我保存此對象嗎?唯一的要求是它在移動Safari中運行,其他任何事情都是真的。該解決方案可以在JavaScript或jquery(或任何其他js庫,如果需要的話)。
感謝您提供的任何幫助。
請參閱http://stackoverflow.com/questions/4001474/json-standard-way-of-referencing-an-object-by-identity-for-eg-circular-refere –