在页面之间移动时创建一个变量并“存储它”,jquery

时间:2012-08-10 12:46:55

标签: javascript jquery variables var

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

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

点击它会带你到页面/example.html并将名为'image'的varable设置为1,这样jquery id的使用是

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

一旦你的页面上的example.html id就像要加载到startAtSlide

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

这是可能的,如果可以的话,我会以正确的方式解决这个问题吗?

6 个答案:

答案 0 :(得分:7)

我建议您查看localStorage或尝试使用cookies(如果您想要使用jQuery plugin,则可以使用{{3}}

答案 1 :(得分:2)

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

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

@siidheesh给出的建议是将一些变量的内容放在location-hash中,即#符号后面的URL部分。但当然,这在结构方面是有限的 - 你不能把对象只放置标量值,而且在添加多个变量时也要考虑美学。

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

答案 2 :(得分:1)

有两种以上的方式:

  1. 使用Cookie存储您的变量,然后在第二页

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

答案 3 :(得分:1)

将数据写入localStorage使用:

localStorage.setItem.image = 1;

从存储使用中读取它

localStorage.image

这就是全部

答案 4 :(得分:1)

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

Cookie是一种可行的解决方案,但是,出于您的目的,我认为location.hash是最佳解决方案。您的链接如下所示:

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

并在javascript中获取该变量:

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

这里我们使用substr跳过location.hash字符串

中提供的#

答案 5 :(得分:0)

您可以在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

中设置它们即可