1

Итак, я пытаюсь создать простой код для базового класса javascript, который будет поддерживать состояние входа для пользователя. функция для их входа в систему следующим образомПытается использовать хранилище сеансов, получая «Невозможно установить свойство« logon »неопределенной или нулевой ссылки

function userLogon() { 
    sessionStorage.logon = "false"; 
    var name = document.getElementById('userName').value; 
    var password = document.getElementById('password').value; 

    if (name == "user" && password == "pass") { 
    **sessionStorage.logon = "true";** 
    alert('Logon successful!'); 
    window.location = "home.html"; 
    } 

    else { 
    alert('Invalid Logon attempt!'); 
    sessionStorage.logon = "false"; 
    } 
} 

Я просто жесткого кодирования имя пользователя и входа в систему, так как у меня нет никакого опыта работы с базой данных еще, и только для целей тестирования. Я разговаривал с моим учитель об этом, отправил ему по электронной почте весь мой сайт, и он говорит, что он отлично подходит для него, так как это не работает на моей машине, и это дает мне это Невозможно установить ошибку свойства на выделенную строку. .

Я запускаю IE 10.0.11 в Windows 8 и запускаю скрипт, который проверяет совместимость с сессионным хранилищем, и он вернул true ... Итак ... Теоретически это должно работать? Какая проблема?

+0

sessionStorage не определен. Это зависит от браузера. Локальное/автономное/сеансовое хранилище отключено в настройках вашего браузера? Кроме того, вы говорите, что он не подходит для вас в IE10 и работает для вашего учителя, но не сказал, какой браузер он использует. Возможно, его браузер поддерживает его, а IE 10 (шокер!) Этого не делает. – Brandon

+0

Я не уверен, какую версию браузера он использует, я никогда не замечал, но он делает большую часть своего тестирования с помощью IE. Я охотился за своими предпочтениями, чтобы убедиться, что это так, но я не видел вариантов нигде, я буду копать еще. , а для поддержки скрипт, который я нашел онлайн, чтобы проверить поддержку хранилища сеансов, возвращался true, когда я запускал его в IE 10, поэтому он поддерживает его, это просто вопрос, почему он не работает. – Arvandor

ответ

2

Я сделал быстрый поиск по «sessionStorage IE10», и он показал вопрос о stackoverflow именно так. Проблема в том, что sessionStorage доступен только в IE 10, если к странице обращаются через HTTP (другими словами, через веб-сервер). Она не работает при открытии страницы HTML непосредственно из файловой системы, как «файл: // C: /Users/blah/test.html»

session storage not working in IE

+0

Ну, это раздражает, я сделал обыск и ничего не придумал ... Мой google-fu терпит неудачу, я думаю. Я тоже искал здесь. Спасибо, предположите, что это объяснит. Возможно, ради проекта мне придется использовать файлы cookie ... Хотя я бы предпочел не – Arvandor

0

Я просто написал blog post о проблеме.

В принципе, Brandon является правильным в том, что Internet Explorer 10 не поддерживает эту функцию на страницах, загружаемых с локального диска, хотя, как представляется, официальная документация по этому поведению отсутствует.

Если вы ищете альтернативы, вы должны обязательно проверить эту StackOverflow пост, в котором перечислены несколько решений: HTML5 Local Storage fallback solutions