私はjQuery.ajaxを使用してXMLデータのXMLHttpRequestを作成するSafari拡張を作成しています。プロセスデータ関数でconsole.log(data)を実行すると、トラバースできるアイテムDocumentが取得されます。XMLHttpRequestデータをlocalStorageに格納することはできますか?
このajaxデータをlocalStorageに保存します。だから私はこれを持ってprocessDocument機能の最初の数行に:
function processResponse(data) {
localStorage.removeItem("myData");
localStorage.setItem("myData", data);
console.log('post-load: there are ' + localStorage.length + ' items in the local storage array.');
console.log("post-load data: " + data);
console.log("post-load myData: " + localStorage.myData);
にconsole.logは私が表示されます:
後負荷:ローカルストレージアレイ内の1つの項目があります。
ポストロードデータ:[オブジェクトドキュメント]
ポストロードmyData:[オブジェクトドキュメント]
ここに有効なデータがあるようです。それはまた、ツールバーのボタンにポーリングを応答する場合でも、MessageHandlerの機能は、このようなローカルストレージ:
console.log('There are ' + localStorage.length + ' items in the local storage array.');
for (var x = 0; x < localStorage.length; x++) {
console.log(x + ": " + localStorage[x]);
}
if (localStorage.myData == undefined) {
console.log("myData is undefined");
doSomething();
} else {
console.log("myData is defined");
doSomethingElse();
}
は、ここでは、コンソールログが表示されます:
ローカルストレージアレイ内の1つの項目があります。
0:未定義
MYDATAが
を定義しているが、私はきちんとのlocalStorageで、このXMLデータを格納するために行う必要がある何かがありますか? localStorageはこのオブジェクトの整合性を保持すべきではありませんか?多分私はここに何かを見逃しています。
まあ、私はJSON.stringifyを見て、それは私が行っている方向のように見えます。普通の古いXMLのような獣はありますか? – gdanko
var string =(新しいXMLSerializer())。serializeToString(data); – gdanko
@ user589254 XML解析は、他のほとんどのブラウザと比較してIEで非常に異なって動作するものの1つです(http://www.mikechambers.com/blog/2006/01/09/parsing-xml-in-javascript/)。 )、あなたは軽量なAJAXライブラリのいくつかを調べたいかもしれません。 – robertc