尝试使用 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");
在我的本地机器上,我得到一个不允许的操作,但如果我将它上传到服务器,它就可以工作。对存储实用程序示例做了同样的事情,它也可以工作。所以要点是把它放在服务器上。