【问题标题】:How to stop triggering introjs after first walkthrough?第一次演练后如何停止触发 introjs?
【发布时间】:2016-06-28 01:10:54
【问题描述】:

我正在使用 introjs

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

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

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

可能的解决方案

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

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

【问题讨论】:

  • 服务器端存储 - MySQL、redis 等。一旦用户清除浏览器 cookie,客户端策略将无济于事。

标签: javascript jquery ruby-on-rails ruby intro.js


【解决方案1】:

您希望您的应用程序/网页记住用户已经完成了您的教程。

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

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

编辑:如 cmets 中所述,您还需要一种服务器端方法。

【讨论】:

  • 这没有多大帮助,您的解决方案没有持久性
  • 这是一种坚持,但你是对的。删除了那部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多