Buonasera a tutti eccomi quì sono il vostro rompiscatole preferito, con un nuovo grattacapo. Ringrazio per l'attenzione anticipatamente.
Mi trovo a fare il debug di un codice che ho aggiunto a dell'altro che si trovava già online, il problema ora è che il caricamento della parte "aggiunta" del codice non termina e rimane inaria senza caricare alcune funzioni. La mia domanda è: Esiste un programma o un qualche oggetto dello stesso javascript per eseguire il debug o quanto meno capire fino a che punto carica?
grazie amici.
Aggiunata:
In particolare se la prende con questa funzione, dicendo quando la chiamo che non è una funzione (lister(,) is not a function).
codice:
function lister(Lfield,Lact,tgt){ Lact = Lact || false; tgt = tgt || false; var Lkey,capLact,mylistner,writeLact,readLact,placeholder; capLact = Lact; mylistner = (function(Lfield,Lact,list_list){return function(){lister(Lfield,Lact,list_list)}})(Lfield,Lact,list_list); if(Lact != false && Lact.indexOf("write") != -1){ //Dall'attributo estraggo il comando writeLact = Lact.split(":"); Lact = writeLact[0]; Lkey = writeLact[1].split("("); //Estraggo anche il nome dei campi da listare writeLact.splice(0,1); if(Lact != ""){ writeLact = writeLact.toString().split(","); } }else if(Lact != false && Lact.indexOf("read") != -1){ readLact = Lact.split(":"); Lact = readLact[0]; Lkey = readLact[1]; }else if(Lact != false && Lact.indexOf("query") != -1){ var queryLact = Lact.split(":"); Lact = queryLact[0]; Lkey = queryLact[1]; } switch(Lact){ case "read": //Creazione del Pattern da inserire if(Lfield != false && Lfield.value != "" && list[Lkey] && list[Lkey][tgt]){ for(var x in list[Lkey][tgt]){ //Composizione del pattern if(list[Lkey][tgt][x]["pat"].indexOf(Lfield.name) != -1){ if(list[Lkey][tgt][x]["tgt"] == "[object HTMLInputElement]"){ // }else if(list[Lkey][tgt][x]["tgt"] == "[object HTMLLabelElement]"){ placeholder = document.getElementById("placeHolder_"+Lfield.id+"_"+Lfield.name); if(!placeholder){ placeholder = document.createElement("label"); placeholder.setAttribute("id","placeHolder_"+Lfield.id+"_"+Lfield.name); placeholder.innerHTML = ""+Lfield.value+""; list[Lkey][tgt][x]["tgt"].appendChild(placeholder); //Memorizzo il nome parziale o/e completo nell'array list[Lkey][tgt][x]["item"] = Lfield.value; }else{ placeholder.innerHTML = placeholder.innerHTML.replace(placeholder.innerHTML," "+Lfield.value+""); list[Lkey][tgt][x]["item"] = list[Lkey][tgt][x]["item"].replace(list[Lkey][tgt][x]["item"]," "+Lfield.value); } } } } }else{ addEvent(Lfield,"blur",mylistner); list_num = 0; } break; case "write": //Scrittura if(Lfield){ //Controllo se vi sono direttive per costituire un pattern if(Lkey[1].indexOf(")") != -1){ if(!list[Lkey[0]]){ list[Lkey[0]] = new Array(); } if(list[Lkey[0]] && !list[Lkey[0]][list_list]){ list[Lkey[0]][list_list] = new Array(); } if(list[Lkey[0]] && !list[Lkey[0]][list_list][list_num]){ list[Lkey[0]][list_list][list_num] = new Array(); } list[Lkey[0]][list_list][list_num]["pat"] = Lkey[1]; list[Lkey[0]][list_list][list_num]["tgt"] = Lfield; } list_num++; list_list++; } break; case "query": if(Lfield == "[object HTMLSelectElement]" && tgt == false){ tgt = Lkey; mylistner = (function(Lfield,Lact,tgt){return function(){lister(Lfield,Lact,tgt)}})(Lfield,Lact,tgt); addEvent(Lfield,"focus",mylistner); }else{ if(list[tgt]){ Lfield.innerHTML = "<"+Lfield.firstChild.tagName+">"+Lfield.firstChild.innerHTML+"</"+Lfield.firstChild.tagName+">"; for(x in list[tgt]){ for(y in list[tgt][x]){ if(list[tgt][x][y]["item"]){ var option = document.createElement("option"); option.id = list[tgt][x][y]["item"]; option.name = list[tgt][x][y]["item"]; option.value = list[tgt][x][y]["item"]; option.innerHTML = list[tgt][x][y]["item"]; Lfield.appendChild(option); } } } } tgt = false; } break; default: //Non succede nulla; break; }}