【问题标题】:Show a modal only once per time the user is on the site每次用户在网站上时仅显示一次模式
【发布时间】:2021-09-30 20:53:56
【问题描述】:

我想在打开网站时向用户显示一条消息,并且此代码在下次进入该网站之前不会完成

这是我弹出模态的函数

//do this if first visit of user 
$("#questionmodal").modal('show')

有人知道我应该怎么做吗?

我想在第一次访问他时向用户展示欢迎模式。 如果用户引用该页面或转到网站的另一个页面,则不应显示此模式。

【问题讨论】:

  • 对于应该只发生一次的事情,您应该使用 setTimeout 代替。如果您提供完整的代码示例(连同 HTML),我可以检查它有什么问题
  • 嗨@OleksandrSakun setTimeout 如果我刷新页面或转到站点的另一个页面,则工作。我想在用户第一次访问时执行此操作
  • 试试这个方法:window.addEventListener('load', function () { setTimeout(function () { $("#questionmodal").modal('show') }, 0); } )

标签: javascript jquery session cookies bootstrap-4


【解决方案1】:

据我了解,您希望模式仅在用户第一次访问您的网站时显示一次。

要实现这一点,您需要在用户的网络浏览器上存储一些东西,标记用户已经看到了弹出窗口。

有多种方法可以做到这一点。你可以:

  • 使用localStorage API
    • 存储模态已显示(例如在您的代码中当模态关闭时)可以使用类似的方式完成:localStorage.setItem("modalshown", "1")
    • 可以使用localStorage.getItem("modalshown") == "1" 检查是否已经向用户显示了模态(在显示模态之前的 if 语句中)
  • 将数据存储在 cookie 中,但要小心,因为这些正在逐步淘汰

【讨论】:

    猜你喜欢
    • 2020-01-11
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    • 2023-03-08
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多