尝试使用 YUI 2 存储实用程序并遵循有效的示例(在同一页面上);但是当我创建第二个页面(比如 page2.html)并尝试访问该键时,我得到的值为 null。
所以在第 1 页我打电话给:
localStorageEngine.setItem('testText', 'this is a triumph (local storage engine)');
如果我在同一页面上使用 getItem 我会看到它,但如果我说 page2.html:
alert(localStorageEngine.getItem('testText'));
我返回null。我认为这就是重点。以下是我除了 jquery 1.4.2 之外的内容
src="http://yui.yahooapis.com/combo?2.8.1/build/yahoo-dom-event/yahoo-dom-event.js&2.8.1/build/cookie/cookie-min.js&2.8.1/build/element/element-min.js&2.8.1/build/swf/swf-min.js&2.8.1/build/swfstore/swfstore-min.js&2.8.1/build/storage/storage-min.js"
这是我的大部分 javascript 代码:
//YAHOO.util.Event.onDOMReady(function() {
jQuery(文档).ready(函数() {
var localStorageEngine;
尝试 {
localStorageEngine = YAHOO.util.StorageManager.get(
YAHOO.util.StorageEngineHTML5.ENGINE_NAME,
YAHOO.util.StorageManager.LOCATION_LOCAL,
{
力:假,
命令: [
YAHOO.util.StorageEngineHTML5,
YAHOO.util.StorageEngineSWF,
YAHOO.util.StorageEngineGears
]
}
);
} 捕捉(e){
YAHOO.log("不存在支持的存储机制。");
本地存储引擎 = 假;
}
如果(本地存储引擎){
localStorageEngine.subscribe(localStorageEngine.CE_READY, function() {
localStorageEngine.setItem('testText', '这是一个胜利(本地存储引擎)');
localStorageEngine.setItem('testNumber', 1234567890);
localStorageEngine.setItem('testBoolean', true);
警报(localStorageEngine.getItem('testText'));
console.log("len:", localStorageEngine.length);
console.log("有密钥:", localStorageEngine.hasKey("testText"));
});
}
});
编辑:
埃里克的回答(非常有帮助!)有效,但在我的情况下,它特别是 swf 行(没有使用准备好的 jquery 文档而不是雅虎的相同)。这是相关的代码,在其他方面几乎相同:
//YAHOO.util.Event.onDOMReady(function() {
jQuery(文档).ready(函数() {
YAHOO.util.StorageEngineSWF.SWFURL = 'assets/swfstore2-8-1.swf';
编辑 2 为混乱的编辑道歉,但我已经回到这篇文章,因为我现在需要实施并意识到 Eric 示例的第二页(尽管他可能选择将其删除)仍然在获取之前设置值所以它并不能真正体现保留页面之间的价值。因此,我在获取之前将其添加到第二页,当我对 getItem 发出警报时,它又返回为空:
/*
localStorageEngine.setItem('testText', '这是一个胜利(本地存储引擎)');
localStorageEngine.setItem('testNumber', 1234567890);
localStorageEngine.setItem('testBoolean', true);
*/
基本上是注释掉第 2 页上的设置代码。在阅读了有关底层 DOM 存储对象的更多信息后,我发现它与特定域相关联。例如,如果我这样做:
sessionStorage.setItem("name", "Rob");
在我的本地机器上,我得到一个不允许的操作,但如果我将它上传到服务器,它就可以工作。对存储实用程序示例做了同样的事情,它也可以工作。所以要点是把它放在服务器上。