Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/12/2010, 06:19
Avatar de ElJavista
ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 18 años
Puntos: 67
Respuesta: Paso de parametros a Javascript

Cita:
Iniciado por Teresil Ver Mensaje
Buenas tardes!!!

Estoy teniendo problemas al intentar pasarle como parametro a una función de Javascript una cadena con formato json atraves de el evento onclick, ya que mi parametro contiene comillas dobles y espacios en blanco lo que entra en conflicto con las comillas de el evento onclick.

Aqui pongo la parte del código que me esta ocasionando problemas.

Estoy utilizando aspx del lado del servidor

v=[{"n":"nombre primero","x":"0","y":"2"},{"n":"nombre segundo","x":"1","y":"0"},{"n":"nombre tercero","x":"2","y":"0"},{"n":"Nombre cuato","x":"3","y":"2"},{"n":"nombre quinto","x":"4","y":"0"},{"n":"Nombre sexto","x":"5","y":"2"}]

<a href="#" onClick=&quot;Funcionjs('par=<%= v %>') &quot; > Graficar </a>
<a href="#" onClick="Funcionjs('par=<%= v %>') " > Graficar </a>
<a href="#" onClick=Funcionjs('par=<%= v %>') > Graficar </a>


He intentado de estas tres maneras pero no consigo que los parametros sean enviados.

En la primera opción obtengo error en el primer espacio en blanco
En la segunda opción las primeras comillas de mi variable cierran las comillas de el evento onclick
En la tercera opción obtengo error en el primer espacio en blanco.

Espero me puedan orientar en como puedo hacerlo de la manera correcta de antemano muchas gracias
Pocas veces me he aventurado a hacer algo así. En todo caso cuando lo hago codifico la cadena que contiene el literal JSON. Puedes hacerlo usando base64 o URLEncoder. Estoy seguro que en .NET hay una clase que haga eso, es más, debe llamarse así: URLEncoder. Bien, lo codificas así y luego en JavaScript lo decodificas y le aplicas un eval:

Código:
function funcion(json) {
   var objeto = eval('(' + unescape(json) + ')');

}
No te empeñes en hacerlo sin usar este truco (u otro truco) porque el problemas de las comillas es muy difícil de resolver para todos los casos. Espero que te sirva.