Попытка использовать YUI 2 Storage Utility и следование примеру, который работал (на той же странице); но когда я создаю вторую страницу (скажем, page2.html) и пытаюсь получить доступ к ключу, я получаю нулевое значение для этого значения.
Так на первой странице я звоню:
localStorageEngine.setItem('testText', 'this is a triumph (local storage engine)');
и если я использую getItem на той же странице, я вижу его, но если я надену скажем page2.html:
alert(localStorageEngine.getItem('testText'));
Я возвращаюсь ноль. Я думал, что это было главное. Вот что я включил в дополнение к 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(document).ready(function() {
var localStorageEngine;
try {
localStorageEngine = YAHOO.util.StorageManager.get(
YAHOO.util.StorageEngineHTML5.ENGINE_NAME,
YAHOO.util.StorageManager.LOCATION_LOCAL,
{
force: false,
order: [
YAHOO.util.StorageEngineHTML5,
YAHOO.util.StorageEngineSWF,
YAHOO.util.StorageEngineGears
]
}
);
} catch(e) {
YAHOO.log("No supported storage mechanism present.");
localStorageEngine = false;
}
if(localStorageEngine) {
localStorageEngine.subscribe(localStorageEngine.CE_READY, function() {
localStorageEngine.setItem('testText', 'this is a triumph (local storage engine)');
localStorageEngine.setItem('testNumber', 1234567890);
localStorageEngine.setItem('testBoolean', true);
alert(localStorageEngine.getItem('testText'));
console.log("len: ", localStorageEngine.length);
console.log("has key: ", localStorageEngine.hasKey("testText"));
});
}
});
РЕДАКТИРОВАТЬ:
Ответ Эрика (очень полезный!) Сработал, но в моем случае он оказался именно строкой swf (без использования готового документа jquery вместо того же, что у Yahoo). Вот соответствующий код, который в остальном почти такой же:
//YAHOO.util.Event.onDOMReady(function() {
jQuery(document).ready(function() {
YAHOO.util.StorageEngineSWF.SWFURL = 'assets/swfstore2-8-1.swf';
РЕДАКТИРОВАТЬ 2
Извиняюсь за грязные правки, но я вернулся к этому посту, так как теперь мне нужно реализовать и понял, что вторая страница на примере Эрика (хотя он может снять его) все еще устанавливает значение до получения, так что не является примером сохранения значения между страницами. Поэтому я добавил это на 2-ю страницу до получения, и оно снова стало нулевым, когда я сделал предупреждение на getItem:
/*
localStorageEngine.setItem('testText', 'this is a triumph (local storage engine)');
localStorageEngine.setItem('testNumber', 1234567890);
localStorageEngine.setItem('testBoolean', true);
*/
по существу, комментируя установленный код на странице 2. После прочтения дополнительной информации о базовом объекте DOM Storage я вижу, что он привязан к определенному домену. Например, если я сделаю:
sessionStorage.setItem("name", "Rob");
на моем локальном компьютере операция запрещена, но если я загружаю ее на сервер, она работает. Сделал то же самое с примерами утилиты хранения, и это также сработало. Таким образом, суть заключается в том, чтобы поставить его на сервер.