尝试使用会话存储,获取“无法设置未定义或空引用的属性'登录'

时间:2013-11-22 22:39:16

标签: javascript internet-explorer-10 session-storage web-storage

所以,我正在尝试为一个基本的javascript类创建一个简单的代码,以保持用户的登录状态。他们登录的功能如下

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";
  }
}

我只是在用户名和登录中进行硬编码,因为我还没有任何数据库经验,仅用于测试目的。我正在和我的老师谈论它,通过电子邮件发送给我我的整个网站,他说这对他来说很好,所以为什么它在我的机器上不起作用,它让我无法设置属性错误粗线......

我正在Windows 8上运行IE 10.0.11,并运行了一个检查会话存储兼容性的脚本,它回来了......所以......它理论上应该有效吗?问题到底是什么?

2 个答案:

答案 0 :(得分:2)

我快速搜索了“sessionStorage IE10”,它显示了一个像这样的stackoverflow问题。问题是,如果通过HTTP(换句话说,通过Web服务器)访问页面,sessionStorage仅在IE 10中可用。直接从文件系统打开HTML页面时它不起作用,例如“file:// C:/Users/blah/test.html”

session storage not working in IE

答案 1 :(得分:0)

我刚刚写了一篇关于这个问题的blog post

基本上Brandon是正确的,因为Internet Explorer 10不支持从本地磁盘加载的页面上的功能,即使似乎没有关于此行为的官方文档。

如果您正在寻找替代方案,您一定要查看这个stackoverflow帖子,其中列出了几个解决方案: HTML5 Local Storage fallback solutions