1

因此,我正在尝试为一个基本的 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";
  }
}

我只是在用户名和登录中进行硬编码,因为我还没有任何数据库经验,仅用于测试目的。我正在和我的老师谈论这件事,给他发送了我的整个网站的电子邮件,他说它对他来说工作得很好,所以为什么它在我的机器上不起作用,它给了我这个 Unable to set property error on粗线...

我在 Windows 8 上运行 IE 10.0.11,并运行了一个检查会话存储兼容性的脚本,结果它恢复正常......所以......理论上它应该可以工作吗?到底是什么问题?

4

2 回答 2

2

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

会话存储在 IE 中不起作用

于 2013-11-22T23:24:46.337 回答
0

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

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

如果您正在寻找替代方案,您绝对应该查看这篇 stackoverflow 帖子,其中列出了几种解决方案: HTML5 Local Storage fallback solutions

于 2013-11-23T00:25:32.963 回答