【问题标题】:Writing an App with jQuery - how to store variables?使用 jQuery 编写应用程序 - 如何存储变量?
【发布时间】:2013-06-03 19:59:47
【问题描述】:

我猜它在网络上的某个地方,但我找不到它..

这是我的问题:

我正在使用 jQuery 和 PhoneGap 编写一个应用程序,但我遇到的问题是,当我在脚本标签中使用 window.location.href 时,我的全局变量会被重置。我试图将它们存储在 HTML LocalStorage 中,但它甚至会重置它们。

绑定在任何文件中的我的 JavaScript 文件如下所示:

var x;
var y;
var z;
...
function ...
   x = 5;
function ...
   alert(x);

每个新页面都有一个额外的 .html 文件。当我使用全局变量导航时没有重置。但我想要一个条件 href,为此我认为我需要 JavaScript 中的 window.location.href。

所以任何人都可以告诉我一种方法来避免我的变量被 window.location.href 重置,或者如何实现不重置我的全局变量的条件 href?

这几天我都遇到了这个问题,如果它在网络上的某个地方,我再次感到抱歉。

谢谢!!

【问题讨论】:

  • 尝试使用cookies来存储变量

标签: javascript html variables save reset


【解决方案1】:

您正在重新加载 JavaScript,重置变量。一些解决方案:

  • 您应该使用 ajax 来更改您的内容。
  • 使用cookies。 (不推荐)
  • 将变量作为参数存储在 url 中。 (不漂亮)

【讨论】:

  • 这适用于大多数浏览器吗?尤其是安卓和iOS?我现在就试试这个,因为 sessionStorage 不起作用。 .(
  • AJAX 适用于我知道的所有浏览器。 JQuery ajax 很简单:$('#target').load(src);
【解决方案2】:

我会考虑使用 sessionStorage 跨不同页面存储和恢复您的变量值。如果失败,请使用 cookie。但是,由于您的目标似乎是智能手机,所以这应该不是问题。

https://developer.mozilla.org/en-US/docs/Web/Guide/DOM/Storage

【讨论】:

  • 不起作用。我尝试了一些东西,问题是 window.location.href 加载了这个 html 文件并且没有链接到它。因此,我真的需要标头中的 JavaScript 文件,否则它不会使用它。但是当我拥有它时,它会重新初始化所有变量,因此它不适用于旧变量..
  • 问题是您正在加载一个新页面。原始页面中的 javascript 在那里不存在。您要么需要将 javascript 添加到第二个页面,要么不加载新页面。改用 AJAX 从第二页动态加载信息并在第一页显示。
  • 是的,这实际上是问题所在。 :/ 好吧,我正试图进入 AJAX。但我只找到无条件的hrefs..
  • 我是否必须将所有页面放在一个 html 文件中才能使用 AJAX 进行 href?
  • 我建议你查阅一些关于使用 jQuery 的 AJAX 的教程。这很简单。这是一个从页面加载 html 并将其放入某个 div 的快速示例:$.ajax({ url:"pagetwo.html", cache:false, success:function(content){ $("#somedivid").html(content); } });
猜你喜欢
  • 1970-01-01
  • 2014-07-13
  • 1970-01-01
  • 2013-02-02
  • 1970-01-01
  • 1970-01-01
  • 2019-07-05
  • 2015-04-26
  • 2010-12-07
相关资源
最近更新 更多