0

我对 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

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

那有可能吗,如果可以的话,我会以正确的方式去做吗?

4

6 回答 6

7

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

于 2012-08-10T12:50:24.453 回答
2

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

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

@siidheesh 给你的建议是将一些变量的内容放在位置哈希中,即 # 符号后面的那部分 URL。但这当然在结构方面是有限的——你不能只放置标量值,并且在添加多个变量时就美学而言。

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

于 2012-08-10T12:53:23.390 回答
1

将数据写入 localStorage 使用:

localStorage.setItem.image = 1;

从存储使用中读取它

localStorage.image

就这样

于 2012-08-10T12:54:34.153 回答
1

许多人建议使用localStorage,但我必须警告说,localStorage目前还没有每个浏览器都普遍支持。

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

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

并在 javascript 中获取该变量:

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

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

于 2012-08-10T13:00:51.437 回答
1

方法不止两种:

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

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

于 2012-08-10T12:49:40.847 回答
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

于 2012-08-10T12:58:31.420 回答