Есть ли способ сохранить переменные javascript на разных страницах? Предположим, что в Page A я устанавливаю window.someVar = 5
. Затем я перехожу на страницу B, нажимая гиперссылку в и делаю что-то вроде alert(window.someVar)
- мне нужно отобразить окно сообщения 5. Есть ли способ сохранить someVar
как таковой...?
Сохранять переменные javascript на разных страницах?
Ответ 1
Вы можете использовать имя окна window.name
для хранения информации. Это называется сеанс JavaScript. Но он работает только при условии использования одного и того же окна/вкладки.
Ответ 2
Для полноты ознакомьтесь также с возможностями локального хранилища и sessionStorage HTML5. Они поддерживаются в последних версиях всех современных браузеров и намного проще в использовании и менее затруднительны, чем файлы cookie.
http://www.w3.org/TR/2009/WD-webstorage-20091222/
Вот пример кода для настройки и получения значений с помощью sessionStorage и localStorage:
// HTML5 session Storage
sessionStorage.setItem("variableName","test");
sessionStorage.getItem("variableName");
//HTML5 local storage
localStorage.setItem("variableName","Text");
// Receiving the data:
localStorage.getItem("variableName");
Ответ 3
Я бы порекомендовал вам посмотреть на эту библиотеку:
Мне это очень нравится, он поддерживает множество хранилищ (от файлов cookie до хранилища HTML5, Gears, Flash и т.д.), его использование действительно прозрачно, вам не нужно знать или заботиться о том, какие бэкэнд используется библиотека, которая выберет правильную базу данных хранилища в зависимости от возможностей браузера.
Ответ 4
Да, используя Cookies. Но будьте осторожны, не вкладывайте слишком много в них (я думаю, что есть предел на 4kb). Но несколько переменных в порядке.
Если вам нужно хранить значительно больше, проверьте @Annie большие подсказки в другом ответе. Для хранения данных небольшого времени я бы сказал, что файлы cookie - самая легкая вещь.
Обратите внимание, что файлы cookie хранятся на стороне клиента.
Ответ 5
Вы можете сохранять значения, используя хранилище HTML5, Flash Storage или Gears. Библиотека dojo storage предоставляет для этого хорошую оболочку.
Ответ 6
Я рекомендую веб-хранилище. Пример:
// Storing the data:
localStorage.setItem("variableName","Text");
// Receiving the data:
localStorage.getItem("variableName");
Просто замените variable
своим именем переменной и text
на то, что вы хотите сохранить. Согласно W3Schools, это лучше, чем файлы cookie.
Ответ 7
Вы можете использовать http://rhaboo.org в качестве обертки вокруг localStorage. Он хранит сложные объекты, но не просто строит и анализирует все, как это делают большинство подобных библиотек. Это действительно неэффективно, если вы хотите хранить много данных и добавлять к ним или изменять его в небольших кусках. Кроме того, JSON отбрасывает много важных вещей, таких как нечисловые свойства массивов.
В rhaboo вы можете писать такие вещи:
var store = Rhaboo.persistent('Some name');
store.write('count', store.count ? store.count+1 : 1);
var laststamp = store.stamp ? store.stamp.toString() : "never";
store.write('stamp', new Date());
store.write('somethingfancy', {
one: ['man', 'went'],
2: 'mow',
went: [ 2, { mow: ['a', 'meadow' ] }, {} ]
});
store.somethingfancy.went[1].mow.write(1, 'lawn');
console.log( store.somethingfancy.went[1].mow[1] ); //says lawn
Кстати, я написал rhaboo