Foros del Web » Programando para Internet » Javascript »

Arrays e internet explorer

Estas en el tema de Arrays e internet explorer en el foro de Javascript en Foros del Web. Hola, estoy desarrollando una página jsp en la que utilizo un array en javascript que inicialmente se carga con los valores de un array en ...
  #1 (permalink)  
Antiguo 21/04/2007, 13:05
 
Fecha de Ingreso: octubre-2006
Mensajes: 2
Antigüedad: 17 años, 6 meses
Puntos: 0
Arrays e internet explorer

Hola,

estoy desarrollando una página jsp en la que utilizo un array en javascript que inicialmente se carga con los valores de un array en java. El usuario de la aplicación puede abrir un popUp y desde el mismo seleccionar nuevos items que se han de añadir al array en javascript declarado en la página jps(el opener). Hasta aquí todo funciona aparentemente bien. Pero, tras cerrar el popUp e intentar "manipular" nuevamente los elementos del array en javascript(que se muestran como una lista de items que pueden ser reordenados, eliminados...) salta un error javascript. Al abrir el depurador, compruebo que se queja al intentar acceder a la última posición del array javascript(que coincide con el item que se añadió). Sinembargo, la longitud del array sí que se ha incrementado.

Llevo varios días con este problema y ninguna de las soluciones que se proponen en la web me han servido. Adjunto las funciones javascript e indico dónde se produce el error.(La línea de código en la última función de color rojo
es dónde se produce el error, al visitar la última posición del array)

Gracias.

//It is called from author list popUp to create an author
function setAuthor(authorid,username,firstname,lastname){
author = new Author(authorid,username,firstname,lastname);
}

//It calls to opener window for pass author data
function addAuthor(author){
if(author){
if (opener && !opener.closed) {
if(author.id != ''){ opener.addAuthorToList(author);
}
}
}
}

//It adds an author to author's list.
function addAuthorToList(author){
selected = author.id;
if(author.id !=''){
var find = false;
var i = 0;
var j=authorList.authors.length;
for (i=0; i < j && !find; i++){
if(selected == authorList.authors[i].id){
find = true;
}
}
if(!find){
authorList.authors = authorList.authors.concat(author);
}
}
printAuthors();
}

// This function is called after move up or down, adds or delete an author in the //author's list.
// It prints the grid with authors and prints with diferent color the author moved
function printAuthors(){

var selected = document.forms[0].elements['authorIdSelected'].value;

var contentHTML ="<table width='100%' cellspacing='1' CELLPADDING='1' >";
contentHTML += "<tr class='cellLabel' > <td colspan='6' >"+authors+"</td></tr>";
contentHTML += "<tr class='cellLabel'>";
contentHTML += " <td width='5%'></td>";
contentHTML += " <td width='25%'>"+username+"</td>";
contentHTML += " <td width='35%'>"+firstname+"</td>";
contentHTML += " <td width='35%'>"+lastname+"</td>";
contentHTML += "</tr>";
for (var l=0; l < authorList.authors.length; l++){
contentHTML+="<input type=hidden id='authorIdList' name='authorIdList' value='" + authorList.authors[l].id + "'>";
if(selected != authorList.authors[l].id){
contentHTML+="<tr id='tr"+l+"' class='cellTextFilled' onclick='javascript:selectRow("+authorList.authors[l].id+");'>";
}
else{
contentHTML+="<tr id='tr"+l+"' class='cellLabelPink' onclick='javascript:selectRow("+authorList.authors[l].id+");'>";
}
contentHTML+="<td >"+parseInt(parseInt(l)+1) +"</td>";
contentHTML+="<td >"+authorList.authors[l].username+"</td>";
contentHTML+="<td >"+authorList.authors[l].firstname+"</td>";
contentHTML+="<td >"+authorList.authors[l].lastname+"</td>";
contentHTML+="</tr>";
}
document.getElementById('authors').innerHTML= contentHTML;
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:34.