第一次演练后如何停止触发 introjs?

How to stop triggering introjs after first walkthrough?

我正在使用 introjs

但是当用户结束简介,然后刷新页面时,introjs 会再次启动。

有没有办法让每个用户只显示一次演练?

例如,当用户首次登录我的网站时,我有它 - introjs 会弹出。我只希望它弹出来表示最初的欢迎。

可能的解决方案

  1. 也许有一种方法可以通过创建操作触发 introjs,就像使用 Flash 消息一样?
  2. 我可以将我所有的页眉、侧边栏和挑战部分代码复制到 pages/tutorial.html.erb 中并创建一个路由 www.websitename.com/tutorial,但这样会有很多代码需要复制,然后每当我在站点中更改某些内容时,我也必须在教程中进行更改。
  3. 有没有办法将 application.js 中的 javascript 方法调整为每个用户 $(function () { introJs().start() }) 只触发一次?

演练的每个步骤我只使用 data-intro=""

您希望 application/webpage 记住用户已经完成了您的教程。

有几种方法可以做到这一点。首先,您可以使用 cookies or localStorage

要点是在用户完成或以其他方式退出您的教程后,您可以使用上述方法之一将描述性值存储到用户的客户端,并且在页面加载时您应该首先检查该值是否存在并采取相应行动。

编辑:如评论中所述,您还需要服务器端方法。