【问题标题】:document.location.href resets global variablesdocument.location.href 重置全局变量
【发布时间】:2013-05-30 18:50:43
【问题描述】:

我正在编写一个游戏并使用不同的 html 文件,但只有一个 javascript 文件,它包含在每个 html 文件中。我在这个文件中有游戏运行所必需的全局变量。我可以访问并且可以更改我正在切换的所有 html 文件中的变量,但一方面我使用 javascript 来更改页面,因为我需要区分游戏结束或新一轮开始。

我用

if (...) {document.location.href = "end.html"}
else {document.location.href = "newround.html}

更改确实有效,但问题是,在此更改之后,它会重置 JavaScript 文件中的所有全局变量,这很糟糕,因为我需要新一轮中的一些变量。我在网络上找不到任何有用的东西,所以请帮帮我,我真的需要这个! :(

谢谢!

【问题讨论】:

  • 页面导航就是这样工作的。每次页面加载都会重置 JavaScript 状态。
  • 要解决这个问题,您可以在重定向到其他页面时通过发送 HTTP 参数来“保存”设置
  • 那么如何在不重置全局变量的情况下获得条件href? ://

标签: javascript html variables global reset


【解决方案1】:

马特说的是对的。如果你想保留页面之间的状态:

  1. 将您的更改放入 URL 参数中
  2. 在 Cookie 中
  3. 使用 HTML5 本地存储
  4. 存储服务器端(这可能无法正常工作,因为您提供的是 HTML 页面)

【讨论】:

【解决方案2】:

您可以使用iframe 作为游戏容器。

【讨论】:

    【解决方案3】:

    就我个人而言,我也有这个问题。 我的解决方法最终是我必须在服务器端保存更改的变量。 我利用会话管理器 (Redis) 来保存最后保存的变量。 当页面指向“end.html”或“newround.html”时,调用上次保存的变量。

    【讨论】:

      猜你喜欢
      • 2015-12-04
      • 2016-04-05
      • 2016-07-13
      • 1970-01-01
      • 2023-03-04
      • 2022-01-28
      • 2011-02-17
      • 2016-03-15
      • 1970-01-01
      相关资源
      最近更新 更多