2012-07-06 68 views
0

希望有人可以阐明这一点。我从逗号分隔的cookie(例如1,2,3,4,5)中获取值,并将其设置为一个变量。一切都很好,直到我尝试访问从数组中的变量设置为空,直到我刷新浏览器。有任何想法吗?JavaScript变量从数组null值直到浏览器刷新

//Setting ExampleVar Cookie 
var ExampleVar = null; 
var ExampleVar = readCookie('SomeCookie'); 
if (ExampleVar == null) { 
createCookie('SomeCookie',ValuesVariable,365)//create cookie if null 
} 

var ExampleVar = null; 
var ExampleVar = readCookie('CookieGoesHere');//e.g. 1,2,3,4,5 
document.write (ExampleVar);//Prints out 1,2,3,4,5 as it should 

var myArr = new Array(); 
var myArr = ExampleVar.split(","); 
for(var i=0;i<myArr.length;i++){ 
    document.write("Array Index " + i + " = " + myArr[i] + "<br />");//prints null until  browser is refreshed 
} 
var Foo = myArr[0];//set to Null until browser is refreshed 
var Bar = myArr[1];//set to Null until browser is refreshed 
+0

说明如何和你在哪里设置cookie – 2012-07-06 19:31:22

+0

是什么'FirstSource'? – jbabey 2012-07-06 19:39:55

+0

对不起 - 我更新了这个。这是遗留我把它改为'ExampleVar' – user1505467 2012-07-06 20:07:00

回答

1

你没有填充你的数组。它不应该打印任何东西。

var ExampleVar = readCookie('CookieGoesHere');//e.g. 1,2,3,4,5 
var myArr = ExampleVar.split(','); 

应该工作

+0

对不起(编辑我的代码 - 有一个旧的变量名称) - 我已经这样做的代码。所以让我知道是否还有其他建议。非常感谢。 – user1505467 2012-07-06 19:51:22

+0

所以答案是这是一个范围问题,因为这些信息中的一些被包含在一个JS文件中,而不在范围内。当我将代码的一部分(分配数组)放到HTML的主要部分时,它按预期工作。 – user1505467 2012-07-06 22:28:59