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;
}
}
父窗口中,在警報,正確地顯示陣列。但是,當它運行更新時,該函數表示該值未定義。什麼導致這個問題?
它應該是'parent.window.EmbroideryDataReturned' – adeneo
此函數中的最後一個'if'語句有一個'='它應該(可能)具有'=='或'==='。 – Pointy
@adeneo讚賞,但它並沒有真正做任何事情。雖然我明白你爲什麼這麼說=)。尖刻,謝謝!我錯過了。 – Twister1002