【问题标题】:How can I stop users from editing the url in a multi-page quiz?如何阻止用户在多页测验中编辑网址?
【发布时间】:2021-11-08 09:29:27
【问题描述】:

我见过一些不同的在线测验/表格,其中使用了多个网页。如果您尝试通过编辑 URL 来跳过某个页面(例如,您在 www.exampledomain.com/pg2 并且您将其编辑为 www.exampledomain.com/pg3),它会将您重定向回您未完成的页面。

我正在开发一款在线游戏,每个级别都有不同的网页。我想帮助我找到一种方法来阻止用户编辑一个级别的 URL 并跳到下一个级别。有没有办法可以用 JavaScript、jQuery 等编写代码?

谢谢!

【问题讨论】:

  • 您已经问过这个问题:How to create multi-page quiz。您是否阅读了Persist variables between page loads 并在此期间进行了一些尝试? Edit您的帖子并包括它们,请。您是否有一些可以检查用户 cookie 和会话数据的服务器端实现?
  • 我很抱歉重新发布这个问题。前一个因为注意力不集中而关闭了,所以我创建了一个新的。我目前正在研究本地存储功能。感谢您的链接
  • 这是一个长期存在的错误,对新用户来说是一个不幸的陷阱;见“You can edit the question or post a new one”
  • 哦,好的,我会记住这一点的。我已经使用会话/本地存储运行了一些简单的测试,并且效果很好,所以我将尝试将它应用到我的一些代码中。感谢您的帮助!

标签: javascript html jquery forms


【解决方案1】:

是的,创建一个 JavaScript 数组,其中包含您要在每个级别上进行的更改,并在该级别完成时在该数组的帮助下编辑 DOM。可能你可以使用一个计数器变量在一个级别完成时递增,并将该变量设置为数组索引以获取相应的更改。

每当您制作此类网络游戏时,请尝试添加一些具有某些共同特征的元素等级。所以我认为即使是你的游戏也会有这样的元素。如果是这样,那么工作就很简单了,你可以在 JavaScript 的帮助下完成一个级别后更改页面的特定元素。

说第 1 级已完成,然后您可以设置用户是否已完成任务的条件,如果是,则在 JS 的帮助下创建一个模式屏幕,要求他们继续或离开,如果他们选择继续然后不要使用单独的 HTML 文件来创建下一个级别,只需使用 JS 并使用 innerHtmlinnerText 等方法更改 DOM。

【讨论】:

  • 如果您需要更清晰的答案,可以将您的代码分享给我,以便我更深入地了解它。
  • 感谢您的回答。这实际上是我考虑过的事情,但由于需要多长时间,我宁愿不在一个网页上拥有每个级别。游戏中也有几次页面刷新,导致游戏重启。
  • 是的,我可以理解您的观点,对于这种情况,您需要迁移到 React 并使用 MangoDB 等数据库管理器为每个用户维护一个数据库。
猜你喜欢
  • 2020-02-26
  • 2022-07-07
  • 2021-12-28
  • 2021-10-26
  • 2013-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多