我正在尝试创建一个列表,只有一个特定的页面访问JS / jQuery。然后,当我访问其他页面及其中的变量时,我需要访问此列表。我该如何存放?
我认为通过在函数之外定义它可以正常...?
var colours = [];
//make the list
$( document ).ready(function() {
if ( window.location.href == 'http://something/anotherthing/') {
colours.push(orange);
colours.push(purple);
colours.push(green);
colours.push(magenta);
}
}
});
//want to access the list here!
$( document ).ready(function() {
//need to access the colours as defined above
var index = 3;
var using_colour = colours[index];
});
我意识到我一直在设置var colours = [];
,这就是为什么对于不是“http://something/anotherthing/”的视图,它会变回空白的原因。如果我移动它我会得到
无法读取未定义的属性
基本上,如何创建变量列表一次然后再访问它??
由于
答案 0 :(得分:2)
为了澄清如何使用localStorage,即使在重新加载页面或导航到另一个页面之后,只要它在同一个域中,它就可以在网站上使用。
使用示例:
if(localStorage["colours"] === undefined) {
localStorage["colours"] = ["orange", "purple", "green", "magenta"];
}
var colours = localStorage["colours"].split(',');
另外,如果您需要存储Objects
,可以使用JSON.stringify
/ JSON.parse
来存储:
localStorage["colours"] = JSON.stringify({ green: 'blue', purple: 'orange' });
var colours = JSON.parse(localStorage["colours"]);
答案 1 :(得分:0)
我正在使用jQuery插件(jQuery cookies),您可以从one-line if
statement
首先设置你的cookies
var colours = [];
//make the list
$(document).ready(function() {
if (window.location.href == 'http://something/anotherthing/') {
colours.push(orange);
colours.push(purple);
colours.push(green);
colours.push(magenta);
Cookies.set('ColoursArray', colours);
}
});
您可以将其访问到其他页面加载事件
$(function() {
if(Cookies.get('ColoursArray') != 'undefined' ){
var colours = Cookies.get('ColoursArray'); --> this is your array
}
});
答案 2 :(得分:-3)
您应该在主模板HTML / PHP文件中创建一个单独的脚本标记:
<script type="text/javascript"> var colors = []; </script>
并将其包含在您的所有script
标记之上。但是在核心JS文件之下。