Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/09/2005, 21:09
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
serializar objetos (para ponerlos como atributos HTML)

He hecho pruebas y tanto en IE como en FF como en Opera puedo inventarme atributos dinamicamente y asignarles la propiedad que yo quiera, y despues acceder a ellos por DOM y leer su valor. Por lo menos lo he probado con DIVs y funciona.

La duda es: Yo quiero guardar una cadena, y funciona; quiero guardar un numero, y funciona (lo paso a string); quiero guardar un array, y me las apaño con un join(",") para pasarlo a cadena, y funciona. Incluso yendo mas lejos, puedo guardarme una funcion entera:

Código PHP:
<div id="capa">assss</div>


<
script>

var 
capa=document.getElementById("capa");
function 
cualquiera(q) {
    
alert(q);
}
capa.setAttribute("funcion_cualquiera",cualquiera);

alert(capa.getAttribute("funcion_cualquiera"));


</script> 
Y funciona. Incluso podriamos ejecutar esa funcion, que esta en forma de string (hace poco preguntaba sobre ello, y no obtuve respuesta, pero ya lo he visto solucionado por medio de la intuicion):

Código PHP:
eval(capa.getAttribute("funcion_cualquiera"))("hola que tal"); 
Lamentablemente esto en FF no produce efecto, y en Opera es todavia peor, devuelve un error:
Cita:
Error:
name: TypeError
message: Statement on line 9: Type mismatch (usually a non-object value used where an object is required)
Backtrace:
Line 9 of inline#2 script in file://localhost/C:/Documents%20and%20Settings/derkenuke/Escritorio/guardar_atr.htm
eval(capa.getAttribute("funcion_cualquiera"))("hol a que tal");
Si alguien pudiera decirme como intentar correr eso en ambos navegadores...



Pero bueno eso no es la duda que me concierne. Si estoy aqui posteando es para guardar Objetos, ni funciones ni arrays. Creo que a esto en otros lenguajes se le llama serializar objetos, convertirlos a strings codificados que contienen toda su informacion.




¿alguien me diria como hacerlo?

Creo que estoy sobrepasando los limites del javascript...
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.