I have a javascript interface for a webchat which receives JSON data from the server. Everything works smoothly using for...in loop. Now the problem is that after adding prototype.js script in the page header the response data is somehow affected with Prototype and loops through the Prototype script as it would be part of the response. For example the debugging area is supposed to show undefined messages from the server (good for PHP debugging) but with Prototype it displays all "var Enumerable" part of the Prototype code, userlist gets full of "undefined" and etc. The JSON message parsing code is basically as follows: var response = eval("(" + request.responseText + ")"); for (var id in response.messages) { var msg = response.messages[id]; var type = msg.type; if (type == ''msg'') { chatlog.appendChild(newChatMsg("["+msg.time+"] <"+msg.user +"> "+msg.text)); } // many other types debug_area.appendChild(newMsgElement(msg,"debug")); } I''m not sure how I should change the code to get it working. Maybe someone could give a push? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
On 24.5.2008, at 15.19, Zounas <zounas-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > I have a javascript interface for a webchat which receives JSON data > from the server. Everything works smoothly using for...in loop. Now > the problem is that after adding prototype.js script in the page > header the response data is somehow affected with Prototype and loops > through the Prototype script as it would be part of the response. > > For example the debugging area is supposed to show undefined messages > from the server (good for PHP debugging) but with Prototype it > displays all "var Enumerable" part of the Prototype code, userlist > gets full of "undefined" and etc. > > The JSON message parsing code is basically as follows: > > var response = eval("(" + request.responseText + ")"); > for (var id in response.messages) { > var msg = response.messages[id]; > var type = msg.type; > if (type == ''msg'') { > chatlog.appendChild(newChatMsg("["+msg.time+"] <"+msg.user > +"> "+msg.text)); > } > > // many other types > > debug_area.appendChild(newMsgElement(msg,"debug")); > } > > I''m not sure how I should change the code to get it working. Maybe > someone could give a push?Try response.messages.each(function(msg){ var type = msg.type; ... }); for...in is not really meant for iterating over an array and Prototype breaks that anyway, by adding new methods to the Object prototype. Not sure if this is the reason to your problems but might be worth a try. //jarkko> > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
Oh snap! That sure made the code work. Now I just gotta change the other for...in loops in the same way. Thanks Jakke. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
Oh snap! That sure made the code work. Now I just gotta change the other for...in loops in the same way. Thanks Jakke. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---