Обновить глобальную переменную

0

У меня проблема с файлами 2 js и двумя html файлами main.html и log.html с одной кнопкой, которая перенаправляет на main.html и выдает предупреждение

JS File 1: У меня есть глобальная переменная

context= {};

и основной:

function main() { if (typeof context.active != 'undefined') alert(context.active); }

Файл JS 2:

У меня есть функция

function setActive() { context.active=true; window.location.href="main.html"; }

Когда я нажимаю на свою кнопку, она перенаправляет меня на main.html, но ничего не происходит (так это не определено). Я сделал несколько тестов, и кнопка работает. Почему это не обновление context.active?

Спасибо.

  • 1
    Что должен делать setActive{} ?
  • 0
    Вы включаете файл JS 1 в HTML?
Показать ещё 11 комментариев
Теги:
variables
global

2 ответа

0

В тот момент, когда ваш браузер перенаправляет переменные Javascript, по существу стираются. Полная перезагрузка страницы (перенаправление) приводит к чистому сланцу.

Если вы пытаетесь сохранить данные на стороне клиента на разных загрузках страниц, вам придется использовать куки или хранилище сеансов.

document.cookie - ссылка

sessionStorage - ссылка

Каждый подход имеет свои плюсы и минусы, поэтому обязательно прочтите документы и проверьте поддержку этих API в браузерах, которые вы планируете поддерживать.

  • 0
    Благодарю. Есть ли у вас какие-либо идеи о том, как я не мог потерять содержимое моей переменной?
  • 0
    Я обновил свой ответ.
0

Попробуйте что-то в этом направлении, вам нужно проверить и учитывать определенные ситуации.

Файл JS 1:

context = {};

Основной HTML: (мы проверяем, что context.active был назначен. Вы получите неопределенное сообщение, если context.active не был назначен как свойство context)

function main() 
{ 
    if (typeof context.active != 'undefined')
       alert(context.active); 
}

Файл JS 2:

function setActive() { context.active=true; }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню