【问题标题】:creating a variable and 'storing it' when moving between pages, jquery在页面之间移动时创建一个变量并“存储它”,jquery
【发布时间】:2012-08-07 18:34:20
【问题描述】:

我对 js/jquery 很陌生,我试图在一个页面上设置一个变量,存储它,移动页面,然后在新页面上使用该变量。

我做了一个这样的标签 a id="ex1" href="/example.hmtl">ONE<a>

点击会带你到页面 /example.html 并将一个名为 'image' 的变量设置为 1,因为 jquery id 使用的是

$("#ex1").click(function() {
  var image = 1;
});

一旦你在页面上的 example.html id 像要加载到 startAtSlide 的值中的变量 'image' 的值

$('.iosSlider').iosSlider({
    startAtSlide   : //value of var 'image' goes here,
    snapToChildren : true
});

是否可以这样做,如果可以,我会以正确的方式进行吗?

【问题讨论】:

标签: javascript jquery variables var


【解决方案1】:

我建议你看看localStorage或者你尝试使用cookies(如果你想使用cookie,你有一个jQuery plugin

【讨论】:

  • cookie 会代替 var 吗?所以 '$.cookie('image', '1');'或者我会使用cookie来存储var
  • 是的,然后$.cookie('image'); //'1' 请记住,如果您正在使用该插件,请将其包含在您需要的页面中
【解决方案2】:

刷新页面或导航到另一个(相关)页面会终止当前的 JavaScript 环境并构建另一个环境。

将变量从一个页面传递到另一个页面并不像您想象的那么简单。

@siidheesh 给你的建议是将一些变量的内容放在 location-hash 中,即 URL 中 # 符号之后的那部分。但这在结构方面当然是有限的——你不能只放置标量值,以及在添加多个变量时的美学。

您所看到的一些类似行为的当前大多数网站都是使用 AJAX 创建的;这意味着他们不会刷新页面或导航到另一个页面(永远)他们总是请求另一个页面的内容(通过 JavaScript),当他们收到它时,他们会将数据加载到感兴趣的区域。

【讨论】:

    【解决方案3】:

    方法不止两种:

    1. 使用 cookie 存储变量,然后在第二页检索它

    2. 使用 url 参数 a id="ex1" href="/example.hmtl?startat=1">ONE<a> 传递该变量。然后使用 javascript 解析该参数(使用 location.href)

    【讨论】:

    • 这在不使用动态页面时是可行的。如果您有一个动态页面,您可能会干扰其参数,这是不可取的。
    【解决方案4】:

    将数据写入localStorage使用:

    localStorage.setItem.image = 1;
    

    从存储使用中读取它

    localStorage.image
    

    就是这样

    【讨论】:

      【解决方案5】:

      许多人建议使用localStorage,但我必须警告localStorage 尚未得到所有浏览器的普遍支持。

      Cookie 是一种可行的解决方案,但是,就您的目的而言,我认为 location.hash 将是最好的解决方案。您的链接如下所示:

      <a href="index.html#1">ONE</a>
      

      并在 javascript 中获取该变量:

      var slideNumber = location.hash.substr(1);
      

      这里我们使用 substr 跳过 location.hash 字符串中提供的#

      【讨论】:

        【解决方案6】:

        您可以在 window.location.href 上使用正则表达式来获取 POST 变量的值。

        一个功能来做到这一点:

        function getUrlVars()
        {
            var vars = {};
            var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,
            function(m,key,value)
            {
                vars[key] = value;
            });
            return vars;
        }
        

        然后您可以使用getUrlVars()["lang"]; 获取值(应该返回“en”)

        只需将它们设置在您的网址中example.html?lang=en

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-08-18
          • 2016-11-08
          • 2020-08-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多