sessionStorage 未按预期工作

2023-12-29

这是我的代码:

    sessionStorage.loggedIn = true;

    if (sessionStorage.loggedIn) {
        alert('true');
    }
    else {
        alert('false');
    }

够简单的。关于 JavaScript 如何评估这些表达式,肯定有一些小问题我不明白。当我把sessionStorage.loggedIn = false,“假”警报正确显示。然而,当我改变sessionStorage.loggedIn设置为 true 时,即使清除会话后,“假”警报仍然会弹出。我这个表达哪里不对劲?看起来很简单,也许我只是需要另一双眼睛来关注它。


尝试将您的代码更改为

sessionStorage.setItem('loggedIn',JSON.stringify(true));

if (JSON.parse(sessionStorage.getItem('loggedIn'))) {
    alert('true');
}
else {
    alert('false');
}

并且它应该在所有主要浏览器上一致地工作。

接口与setItem/getItem方法是规范的编写方式,因此采用这种方式比使用分配属性的快捷方式更安全。还,sessionStorage, like localStorage是一种基于文本的存储机制,并不用于存储对象,因此您需要使用以下方式包装调用JSON.parse and JSON.stringify全面获得预期结果。

意识到JSON.parse并不总是能很好地处理未定义/空值,因此首先进行一些类型检查可能是明智的。

您可以在此处阅读存储接口的规格 http://www.w3.org/TR/2013/REC-webstorage-20130730/#storage-0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sessionStorage 未按预期工作 的相关文章

  • React-native:将场景绑定到导航栏

    我正在整理这个提问 回答应用程序 并遇到了这个障碍 我想从导航栏触发场景中的功能 与登录应用程序类似 我在导航栏中有一个用于提交答案的按钮 RightButton route navigator index navState if rout
  • 如何将udp发送到udp node.js服务器?

    我对此很陌生 所以我真的不知道我在做什么 但我已经设置了一个 node js udp 服务器 我想从客户端 来自网站 向它发送一个数据包 但我不知道如何在 javascript 中做到这一点 或者是否可能 我不是在研究如何从 Node js
  • 非 DOM 对象上的 jQuery 自定义事件

    我最近阅读了一些代码 其功能如下 bob name Bob Smith rank 7 bob bind nameChanged function bob trigger nameChanged 这似乎有效 但我在 jQuery 文档或源代码
  • jquery 验证错误位置

    这看起来很简单 但我无法弄清楚 我正在使用 jquery 验证插件 我验证所有文件 但我想要的是在输入文本行中显示验证消息警报 例如在电子邮件输入中 请填写电子邮件地址 但现在它出现在所有字段下 在我的html中
  • jQuery 选择 # id 以单词为前缀,计数器为后缀

    有没有办法用 jQuery 选择所有带有前缀 my 和后缀 0 9 的 id 像这样的 my 1 4 还是可以用循环来实现 div div div div div div div div div div 第一个想法 似乎效果很好 div i
  • 如何仅在 NextJS 站点构建期间使用 getInitialProps?

    当使用 NextJS 构建静态站点时 我想要getInitialProps方法仅在构建步骤期间触发 而不是在客户端上触发 在构建步骤中 NextJS 运行getInitialProps 方法 https nextjs org docs fe
  • Leaflet js虚构地图

    我是 Leaflet 的新手 我想了解如何创建完全交互式的虚构地图 我有一张图像想要转换为传单地图 该图像基本上像图表一样具有许多连接和点 我想首先将该图像转换为地图 能够将鼠标悬停在这些点上 突出显示它们并显示有关它们的信息 并且还可以在
  • 检查 touchend 是否在拖动后出现

    我有一些代码可以更改表的类 在手机上 有时表格对于屏幕来说太宽 用户将拖动 滚动来查看内容 但是 当他们触摸并拖动表格时 每次拖动都会触发 touchend 如何测试触摸端是否是触摸拖动的结果 我尝试跟踪dragstart和dragend
  • 仅一页 JavaScript 应用程序

    您是否尝试过单页 Web 应用程序 即浏览器仅从服务器 获取 一页 其余部分由客户端 JavaScript 代码处理 此类 应用程序页面 的一个很好的例子是 Gmail 对于更简单的应用程序 例如博客和 CMS 使用这种方法有哪些优点和缺点
  • JavaScript 中数组的 HTML 数据列表值

    我有一个简单的程序 它必须从服务器上的文本文件中获取值 然后将数据列表填充为输入文本字段中的选择 为此 我想要采取的第一步是我想知道如何动态地将 JavaScript 数组用作数据列表选项 我的代码是
  • Google Chrome 106 可拖动导致元素消失

    使用拖放元素时 绝对定位元素中包含的大多数其他元素都会从屏幕上消失 如果我调整窗口大小 这些元素会出现 但在开始拖动时会再次消失 我在最新版本的 Google Chrome 106 和 Beta 版本 107 0 5304 18 以及现在的
  • 如何流式传输 OpenAI 的完成 API?

    我想流式传输结果通过 OpenAI 的 API 完成 https beta openai com docs api reference completions 该文档提到使用服务器发送的事件 https developer mozilla
  • 如何使JavaScript函数在Eclipse“大纲视图”中可见?

    我有这样的代码 但如果它在匿名函数中定义 则无法打开函数大纲 类没有问题 我该如何概述something2 请分享一些提示 我可以将所有函数标记为构造函数 但这是无效的方法 start of track event required deb
  • 将 javascript 整数转换为字节数组并返回

    function intFromBytes x var val 0 for var i 0 i lt x length i val x i if i lt x length 1 val val lt lt 8 return val func
  • Select2 下拉列表动态添加、删除和刷新项目

    这让我发疯 为什么 Select2 不能在其页面上实现清晰的方法或示例如何在 Select2 上进行简单的 CRUD 操作 我有一个 select2 从 ajax 调用获取数据
  • JavaScript 代码在不使用 ActiveX 的情况下截取网站屏幕截图

    我有一个用户与之交互的 JavaScript 应用程序 我需要保存当前界面的外观 裁剪出我需要的部分 或者通过指定div只拍摄我需要的部分 然后发送回服务器 显然任何外部服务都无法做到这一点 我需要一个 JavaScript 或Flash
  • 如果数字小于 10,则显示前导零 [重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript 相当于 printf string format https stackoverflow com questions 610406 javascript equivalent t
  • Jquery - 通过在字符串中构建 id 的 id 获取元素

    我在使用 jquery 元素时遇到问题 我正在 var 中构造名称 例如 var myId myGotId myId attr title changed myId 返回空 我想通过 id 获取我的元素 但动态构建我的 Id 连接字符串 编
  • 如何在 gulp.src 中使用基本正则表达式?

    我正在尝试选择两个文件gulp src highcharts js and highcharts src js 当然 我知道我可以使用数组表达式显式添加这两个表达式 但出于学习目的 我尝试为它们编写一个表达式 我读过可以使用简单的正则表达式
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没

随机推荐

  • 如何在序列图中表示循环中进行的调用?

    我正在创建一个序列图 其中一个类正在被另一个类观察 被观察的类在观察者中每 5 秒循环调用一次更新 我需要在序列图中显示这一点 有没有办法让它无限期地不按顺序循环 或者它在序列图的上下文中没有意义吗 我不应该包括它吗 或者我应该将其包含在不
  • 针对另一个域远程使用 Get-DnsServerResourceRecord

    我正在尝试运行以下命令 secpasswd Test secpasswd ConvertTo SecureString secpasswd AsPlainText Force mycreds New Object System Manage
  • Pygame显示模块初始化和退出

    有一个pygame display窗户打开 我打电话pygame display quit 为了摧毁窗户 因为我需要再次打开窗口 所以我调用pygame display init and pygame display set mode 但是
  • 如何从报表设计器调用 Acumatica 函数?

    我有一个用 Acumatica 编写的通用函数 我们在各种 Acumatica 屏幕上使用它 我们希望在报表设计器中使用此函数 以便我们可以打印该值 示例 CheckBday 如果我们传递客户代码 它应该检查此客户生日字段 如果是今天 则返
  • 非升压asio检查错误c ++

    有没有办法使用 tcp 检查非 boost asio 程序中的错误 有没有办法随机向连接添加错误 我用 C 创建了一个简单的 Echo 服务器 现在我必须为其生成随机错误 但问题是我不知道如何生成 或者 如果这有更多帮助 我需要检查二维奇偶
  • Chrome 自动播放政策中的自动播放背景视频

    因此 在最新的 chrome 中 显然自动播放策略已更改 因此这反过来又破坏了每个具有应自动播放视频背景的网站 我想知道是否有人有任何聪明的解决办法可以 解决 这个问题 我相信按钮或 进入页面 解决方案将是一种糟糕的解决方法 特别是对于背景
  • 如何获取函数内部创建的变量?

    我正在 node js 中执行 javascript 文件 并且需要访问在该文件中创建的所有变量 由于这些 javascript 文件可以根据开发人员上下文保存任何内容 因此我需要以编程方式访问变量 我的问题是 如何获取函数内创建的变量 像
  • 创建登录屏幕

    制作密码 登录屏幕的最佳方法是什么 我在某处读到最好使用弹出控件 如果是这样 我到底需要在 App xaml 中的哪里创建它 在为 Windows Phone 7 应用程序实现登录屏幕时 您需要考虑许多事项 这是一个示例 http baba
  • 通过 HTTP 访问 FTP?

    我们有一个外部安全 FTP 服务器 我们希望通过 HTTPS 访问该服务器 我们的基础设施不支持 FTP 我知道这是可能的 但我不知道怎么做 我正在寻找这样的东西 ftp ftp mozilla org pub mozilla org zz
  • 如何在浏览器控制台中查看 CORS 飞行前 OPTIONS 请求?

    我正在寻找一种在发出 CORS 请求时查看 CORS 飞行前选项请求的方法 我想查看服务器的响应标头以帮助我调试遇到的 CORS 问题 但我无法在 Chrome 或 Firefox 的 网络 选项卡或控制台中找到执行此操作的方法 我还安装了
  • Azure AD:如何获取令牌中的组信息?

    我们在 MEAN 堆栈中开发了应用程序 我们正在使用阿达尔角 https github com AzureAD azure activedirectory library for js用于天蓝色广告身份验证的库 根据文档和样本 https
  • MarginLayoutParams.setMargins() 不起作用?

    事情是这样的 我想以编程方式添加一些图像 图像应该有一个topMargin of 5dip除了第一张图片之外 LinearLayout with a vertical orientation方式 代码段下方 LinearLayout bod
  • 使用各种语言在 Hadoop 中运行作业的优缺点是什么?

    到目前为止 我一直使用 Pig 或 Java 进行 MapReduce 专门针对 Hadoop 集群运行作业 我最近尝试通过 Hadoop 流使用 Python Map Reduce 这也很酷 所有这些对我来说都有意义 但我对何时想要使用一
  • 如何将 numpy 对象数组转换为 str/unicode 数组?

    Update 在最新版本的 numpy 例如 v1 8 1 中 这不再是问题 这里提到的所有方法现在都可以按预期工作 原问题 使用对象数据类型来存储字符串数组有时很方便 特别是当需要修改大型数组的内容而不事先知道字符串的最大长度时 例如 g
  • JQuery live 或与 .change() 类似的东西?

    我想做这个 http docs jquery com Events live typefn http docs jquery com Events live typefn 只有 live 不支持更改事件 有解决方法吗 需要将函数绑定到某些动
  • 设计问题 - Web 应用程序会话中的持久数据

    我正在使用 servlet 和 jsp 开发一个 Web 应用程序 我有一个关于存储登录会话中多个 servlet 需要使用的数据的问题 例如 当用户登录时 我从数据库获取用户对象 并希望将其存储在某个地方 并让后续的 servlet 和
  • 使用构面时如何将值向量传递给 geom_vline?

    我有一个包含多列的数据框 每列对应一个不同的 id 我使用以下代码为每列创建了密度图 ggplot melt df aes x value geom density facet wrap paginate variable nrow 3 n
  • Python、Pandas 删除 Excel 中的行

    用于删除某些行的电子表格 在保存到新电子表格之前 将删除其第一列中包含以 36 开头的值的所有行 我使用这些代码 并且需要随后在 Excel 中拆分列 该示例如下所示 import xlwt from xlrd import open wo
  • Rails:has_many,但也有不同名称的 has_one

    让我们说一个User有很多Documents 以及单个Document他们目前正在努力 我如何在 Rails 中表示这一点 我想说current user current document Document first 在文档前面有或没有
  • sessionStorage 未按预期工作

    这是我的代码 sessionStorage loggedIn true if sessionStorage loggedIn alert true else alert false 够简单的 关于 JavaScript 如何评估这些表达式