Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/09/2010, 10:14
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 8 meses
Puntos: 1485
Respuesta: parametro objeto json missing ]

tambien depende donde esta definido el objeto. cuando se usan variables en un evento que esta declarado como atributo de un elemento, en la mayoria de los casos el evento siempre asume que las variables son de ambito global. si no es tu caso, entonces tienes que crear el evento por otros medios para que el evento pueda estar enlazado con la variable. pero para ello, ya no puedes declarar el evento como atributo. mas bien tienes que crear el elemento por metodos del DOM y luego asignar el evento por propiedades de javascript. analice los siguientes codigos.

Código:
// ejemplo: json is undefined porque la variable json no se encuentra ;
// en la jerarquia del contexto en que esta definido el evento onclick;
function displayMessage(obj){
alert(obj.author.concat(" escribio el tema '", obj.topic, "' en el foro ", obj.forum, " de los cuales han participado los siguiente usuarios: ", obj.conversationWith.toString()));
}

// esta funcion podria ser otra que se invoque mas tarde,;
// pero para proposito de ejemplo lo he creado como evento;
self.onload = function(){ 
var json = {author: "doylelives", topic: "parametro objeto json missing ]", forum: "javascript", conversationWith:["zerokilled", "tredio"]};
document.body.innerHTML = "<button onclick='displayMessage(json);'>show</button>";
}
Código:
// ejemplo: mas o menos el mismo codigo anterior con excepcion;
// de como se crea el evento para el elemento;
function displayMessage(obj){
alert(obj.author.concat(" escribio el tema '", obj.topic, "' en el foro ", obj.forum, " de los cuales han participado los siguiente usuarios: ", obj.conversationWith.toString()));
}

self.onload = function(){ 
var json = {author: "doylelives", topic: "parametro objeto json missing ]", forum: "javascript", conversationWith:["zerokilled", "tredio"]};
var button = document.body.appendChild(document.createElement("button"));
button.onclick = function(){displayMessage(json);};
button.innerHTML = "show";
}
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 17/09/2010 a las 10:21