Hi.

The way you were using Hash worked totally accidentally.

The implementation of hash having drastically changed your hack no
longer works.

I suggest you follow Richard's advice here.

Best,

Tobie

On Oct 1, 4:11 pm, Dave <[email protected]> wrote:
> I have just upgraded to the latest scriptaculous (1.8.2) which
> includes prototype 1.6.0.3 and the following code no longer works:-
>
> Ajax.JSONResponse = function(xhr) {
>         var data=eval('('+xhr.responseText+')');
>         Object.extend(data,Enumerable);
>         Object.extend(data,Hash);
>         return data;
>
> };
>
> .......
>
>         var opts = Ajax.JSONResponse(xhr);
>         if (opts.size()>0) {
>                 opts.each(function(opt) {
> .....
>
> There is no error, it just seems that execution stops when trying to
> access any method of the opts object. I checked the response returned
> by Ajax in the previous and the latest versions, by doing console.log
> (data) after the eval, and they are identical. However, if I replace
> the eval line in the above code with this line
>
>         var data=$H(eval('('+xhr.responseText+')'));
>
> it now works.
>
> I didn't write the original code and I am relatively new to prototype.
> Can anyone tell me whether the $H() is the correct solution or is
> there an alternative (better) solution.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to