2014-01-06 48 views
0

我有一个javascript问题,我很困惑它。我似乎无法弄清楚为什么一个函数返回一个数组(它是一个数组),但另一个函数返回undefined。父窗口说变量是未定义的,但子窗口具有值

问题:为什么一个函数返回一个数组,但其他在父窗口返回undefined?

因此,与一些背景我有一个数据发送回父窗口一个javascript孩子。现在它只发送整数,所以没有太大或有问题。信息保存在父窗口中。子窗口唯一做的就是发回信息。 (基本上说“哦这是被选中的”)。

子窗口

else{ 
      if(document.getElementById("embroid"+embroideryID).checked == false){ 
        parent.EmbroideryDataReturned("add", embroideryID); 
        document.getElementById("embroid"+embroideryID).checked = true; 
      } 
      else{ 
        parent.EmbroideryDataReturned("remove", embroideryID); 
        document.getElementById("embroid"+embroideryID).checked = false; 
      } 
    } 

function SelectedEmbroideries(){ 
    var embroideries = parent.EmbroideryDataReturned("get", 0); 

    for(i = 0; i < embroideries.length; i++){ 
      document.getElementById("embroid"+embroideries[i]).checked = true; 
    } 
} 

父窗口

var embroidArray = new Array(); 
function EmbroideryDataReturned(mode, embroidID){ 
    if(mode == 'add'){ 
      embroidArray.push(embroidID); 
      //alert(mode + " " + embroidID + " Array is now: \n"+ embroidArray); 
      return; 
    } 
    else if(mode == 'remove'){ 
      embroidArray.splice(embroidArray.indexOf(embroidID), 1); 
      //alert(mode + " " + embroidID + " Array is now: \n"+ embroidArray); 
      return; 
    } 
    else if(mode = 'get'){ 
      return embroidArray; 
    } 
} 

父窗口中,在警报,正确地显示阵列。但是,当它运行更新时,该函数表示该值未定义。什么导致这个问题?

+1

它应该是'parent.window.EmbroideryDataReturned' – adeneo

+1

此函数中的最后一个'if'语句有一个'='它应该(可能)具有'=='或'==='。 – Pointy

+0

@adeneo赞赏,但它并没有真正做任何事情。虽然我明白你为什么这么说=)。尖刻,谢谢!我错过了。 – Twister1002

回答

0

我想通了,还有当时正在穿过的名称相同的变量我试图用一个参数。所以我的错误!感谢您的帮助!