第一次打开浏览器窗口/选项卡后执行 JavaScript 代码

2023-12-28

有没有一种方法可以在浏览器中的窗口或选项卡打开时仅执行一次 JavaScript 代码,然后在该窗口/选项卡的整个生命周期中不再执行(即使导航离开)?


一种使用方式window.sessionStorage像这样。

if (!window.sessionStorage.getItem("isExecuted")) {
    //execute code
    window.sessionStorage.setItem("isExecuted", true);
}

MDN docs https://developer.mozilla.org/en/docs/Web/API/Window/sessionStorage

sessionStorage 属性允许您访问会话存储 目的。 sessionStorage 与 Window.localStorage 类似,唯一 区别在于存储在 localStorage 中的数据没有设置过期时间, 当页面会话结束时,存储在 sessionStorage 中的数据将被清除。 只要浏览器打开并存活,页面会话就会持续 整个页面重新加载和恢复。在新选项卡或窗口中打开页面 将导致启动一个新会话,这与如何 会话 cookie 有效。

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

第一次打开浏览器窗口/选项卡后执行 JavaScript 代码 的相关文章

随机推荐

  • Apache Commons Lang3 Hashcode、Equals 和 ToString(包括枚举)

    我们在模型中为服务响应和请求对象定义了很少的数据类型 最近我们发现需要实施ToString HashCode 和等于在所有此类类型上利用这些过度比较和断言 从几个来源确认 例如在Java中重写equals和hashCode时应该考虑哪些问题
  • Android 中的可扩展列表视图

    我有一个可扩展的 ListView 但我面临两个问题 Q1 如果标题不包含任何子项 我想将其隐藏 从列表中删除 为此 我有内部 getGroupView 方法 if getChildrenCount groupPosition 0 conv
  • 如何在没有任何注释的 Spring 项目中使用 Jackson Json 解析?

    情况 我有一个名为 Errors 的枚举类 它位于一个公共项目中 错误枚举包含一个 int 代码和一个 String 文本 Errors 枚举用于两个不同的项目 一个项目是基于 Spring 的项目 另一个项目是非 Spring J2EE
  • 是否可以在 C++03 中定义等效的“移动和交换习惯用法”

    我有义务C 03我有一个不可复制的对象 例如持有资源 我需要使用移动和交换语义能够做类似的事情并避免复制 MyClass returnMyClass void MyClass temp fill temp members with actu
  • 虚拟地球或谷歌地图

    简单的问题 答案可能不是 我将为客户开发一个 Web 应用程序 ASP NET MVC 他们询问我是否使用 Google 地图或 Virtual Earth 来提供地图解决方案的意见 你会选择哪一个 为什么 或者还有其他可以推荐的吗 还有什
  • 如何从数据帧创建 key:column_name 和 value:python 列中的唯一值的字典

    我正在尝试创建一个键 值对的字典 其中键是数据帧的列名 值将是包含该列中所有唯一值的列表 最终我希望能够从基于条件的字典 到目前为止 这是我能够做的 for col in col list 1 list list append footwe
  • Pytrends 趋势结果与手动下载的数据不相似

    I use pytrends自动下载数据到csv来自谷歌趋势 我使用的代码如下 在本例中 我正在下载 2008 年至今的每月 Google 趋势数据 from pytrends request import TrendReq from ur
  • html 5 canvas 硬件在 android chrome beta 上加速吗?

    我在 Android 浏览器与 chrome beta 上进行了一些 html 5 canvas 测试 结果有利于 Android 默认浏览器 尽管 chrome gpu 显示 canvas 具有硬件加速功能 测试示例 带有 8 个小图像的
  • istream读取失败后

    我有一小段代码来读取用户数据 如下所示 include
  • 在 Java 中,如何录制扬声器的声音输出? [复制]

    这个问题在这里已经有答案了 我有一个 Java 应用程序 它从多个来源接收声音 用户的能力之一是将应用程序中发生的情况记录到 AVI 文件中 我想将声音包含在该视频捕获中 如何录制用户会听到的声音 例如所有声音输入混合在一起的结果 我可以弄
  • 如何确定系统上的 Boost 版本?

    有没有一种快速方法可以确定系统上 Boost C 库的版本 增强信息宏 http www boost org doc libs 1 44 0 libs config doc html boost config boost macro ref
  • Windows ISO 8601 时间戳

    我需要将 Windows PowerShell 中的日期转换为 ISO 8601 格式 在 Linux Unix 中没有问题 TZ 0 date d
  • 从 Android 应用程序向 Azure AD 进行 Firebase 身份验证

    我正在尝试将 Microsoft 登录方法添加到我的 Firebase 项目中 希望允许用户使用其 Azure AD 凭据登录我的 Android 应用程序 我已经完成了使用 电子邮件 密码 提供商的所有设置 该提供商运行良好 我不打算访问
  • 扑动|如何将数据添加到 firestore 中的现有文档

    我正在使用 firestore 来存储我的 flutter 应用程序的数据 并且我创建了一个在用户登录后自动在 firestore 中创建文档的功能 现在我希望用户在填写此表单时 数据将添加到用户电子邮件所在的同一文档中 RaisedBut
  • 为什么节点 contains 方法没有捕获对 svg 元素的点击?

    我有一个基本的模态 其 html 结构中有一个 svg 图标 我想检测模式之外的点击 以便我可以将其关闭 执行此操作的代码类似于以下内容 document addEventListener mousedown e gt if modal c
  • SQLite删除查询错误

    delete N from Tbl Nodes N Data Tree DT WHERE N Part DT Part 对于这个命令我收到以下错误 System Data SQLite SQLiteException SQLite erro
  • 本地网络上的Mysql错误10061

    我正在尝试连接到本地服务器的数据库 位于 192 168 0 198 但我收到 10061 错误 当我尝试连接真正的 putty 然后只是一个普通的 mysql 登录 时 它没有给我带来任何问题 mincraft 插件使用以下命令登录数据库
  • CloudKit错误处理-重试逻辑

    我想在我的应用程序中加入出色的 CloudKit 错误处理功能 就像 Apple 希望我们做的那样 我现在想保存并修改一条记录 这是我的基本保存逻辑 func addNewRecord managedObj NSManagedObject
  • requestIdleCallback 和 setImmediate 之间的区别?

    目前有 2 个不同的 API 旨在将任务分解为预定的回调函数 设置立即 https developer mozilla org en US docs Web API Window setImmediate 非标 请求空闲回调 https d
  • 第一次打开浏览器窗口/选项卡后执行 JavaScript 代码

    有没有一种方法可以在浏览器中的窗口或选项卡打开时仅执行一次 JavaScript 代码 然后在该窗口 选项卡的整个生命周期中不再执行 即使导航离开 一种使用方式window sessionStorage像这样 if window sessi