尝试使用会话存储;无法设置属性'登录'的未定义引用或null引用

Trying to use session storage, getting "Unable to set property 'logon' of undefined or null reference

本文关键字:引用 登录 未定义 null 属性 设置 会话 存储      更新时间:2023-09-26

因此,我试图为一个基本的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,并运行了一个检查会话存储兼容性的脚本,结果是真的。。。那么…理论上应该有效吗?到底出了什么问题?

我在"sessionStorage IE10"上做了一个快速搜索,它显示了一个像这样的stackoverflow问题。问题是,只有通过HTTP(换句话说,通过web服务器)访问页面时,sessionStorage才能在IE 10中使用。当直接从文件系统打开HTML页面时,它不起作用,比如"file://C:''/Users/blah/test.HTML"

会话存储在IE 中不工作

我刚刚写了一篇关于这个问题的博客文章。

基本上,Brandon是正确的,因为InternetExplorer10不支持从本地磁盘加载的页面上的功能,尽管似乎没有关于这种行为的官方文档。

如果你正在寻找替代方案,你绝对应该看看这篇stackoverflow的帖子,它列出了几个解决方案:HTML5本地存储后备解决方案