2013-11-25 39 views
0

我想在獨立的xul應用程序中實現html5本地存儲,我想使用本地存儲,因爲我認爲Xpcom方式看起來很複雜。HTML 5本地存儲在XUL應用程序

我已閱讀,對於Firefox擴展,你可以這樣做:

document.content.localStorage.setItem("myvariable", "myvalue"); 
var item = document.content.localStorage.getItem("myvariable"); 
document.getElementById("result").innerHTML=item; 

但是,這並不爲我的獨立應用程序工作,所以我怎麼做呢?

回答

1

我已經找到了解決辦法here返回文檔的價值。

var url = "http://example.com"; 
var ios = Components.classes["@mozilla.org/network/io-service;1"] 
      .getService(Components.interfaces.nsIIOService); 
var ssm = Components.classes["@mozilla.org/scriptsecuritymanager;1"] 
      .getService(Components.interfaces.nsIScriptSecurityManager); 
var dsm = Components.classes["@mozilla.org/dom/storagemanager;1"] 
      .getService(Components.interfaces.nsIDOMStorageManager); 

var uri = ios.newURI(url, "", null); 
var principal = ssm.getCodebasePrincipal(uri); 
var storage = dsm.getLocalStorageForPrincipal(principal, ""); 

storage.setItem("chromekey", "chromevalue"); 

它所做的是,它假裝它是example.com這樣的Mozilla讓它評估loaclstorage。

0

試試這個:

var win = document.content.defaultView; 
win.localStorage.setItem("myvariable", "myvalue"); 
var item = win.localStorage.getItem("myvariable"); // why not win.localStorage["myvariable"] 
document.getElementById("result").innerHTML=item; 

localStorage的是window對象的屬性,而你試圖用document對象來訪問它

請注意,此數據將只能從同一個域中的文件訪問的地方被保存了。所以,如果win.document是從www.yahoo.com,當你把一個的localStorage值,win.localStorage.getItem("myvariable")只會從www.yahoo.com/*

+0

我很抱歉,但我認爲你誤會了。我不是在製作一個網頁,而是一個使用Mozilla的xulrunner的獨立應用程序。所以這不適用於我的情況。 – NatureShade

+0

啊...好的。我認爲這是一個延伸 – Kashif

相關問題