没有php转移js var

时间:2013-02-26 14:27:34

标签: javascript jquery variables

index.html 背景中的

在您打开时会随机更改

var imgArr=['background.jpg', 'backgrounds2.jpg', 'backgrounds3.jpg'];
i=Math.round(Math.random()*2);
$('.wrap').css({'background': 'url('+imgArr[i]+') no-repeat fixed'});

在其他页面中,我不需要更改背景,而是使用index.html中的一个  如何从index.html保存一个var值并在其他页面中使用它而不更改?

4 个答案:

答案 0 :(得分:0)

最简单的方法是将jsut设置为CSS中的默认值 - 然后你的JS会覆盖index.html上的默认值,如果你省略其他页面中的js,那么它将恢复为默认值。

你也可以使用JS来设置一个cookie,然后从中读取,但是如果有人在没有设置cookie的情况下访问页面,你仍然需要计划,所以我可能会选择CSS选项。

答案 1 :(得分:0)

如果您使用的是任何服务器端语言,请尝试使用SESSION存储该值。 如果您只使用客户端语言,请尝试使用cookie或将值通过参数传递到下一页。

答案 2 :(得分:0)

您可以向index.html添加一些元素,并检查您的javascript是否存在,这意味着您在index.html页面上,您应该更改背景。例如,添加

<div id="iamindex"></div>

你javascript:

if($('#iamindex').length) {
  var imgArr=['background.jpg', 'backgrounds2.jpg', 'backgrounds3.jpg'];
  i=Math.round(Math.random()*2);
  $('.wrap').css({'background': 'url('+imgArr[i]+') no-repeat fixed'});
}

答案 3 :(得分:0)

您可以使用Cookie或localStorage甚至更好sessionStorage

var imgArr=['background.jpg', 'backgrounds2.jpg', 'backgrounds3.jpg'];
i = Math.floor(Math.random() * imgArr.length);
//fewer harcoded values is better :-)
$('.wrap').css({'background': 'url('+imgArr[i]+') no-repeat fixed'});
sessionStorage.setItem("bg", imgArr[i]);

当然,您应该在尝试访问之前检查存储是否可用,但它将在现代浏览器中使用。