Hi everyone,

I have been using mochikit for a while with a lot of success (after
the initial frustrations of getting to grips with the weirdness of
javascript ;-), but today ran into a problem in Safari with the
function createDOM.  Here is what it boils down to


<div id="mydiv">blah</div>

<script type="text/javascript">
mydiv = $(mydiv);
createDOM("div", {}, mydiv.childNodes);
</script>

fails in Safari with the following error
TypeError - Value undefined (result of expression node.apply) is not
object.
http://localhost/mochikit/MochiKit/DOM.js Line:323

Looking at that file it appears that the function coerceToDOM sees
mydiv.childNodes as a function rather than an array of nodes, hence
tries to apply this function without much success...

Indeed if I check typeof(mydiv.childNodes) I get "function".

My fix has been to change
        mydiv.childNodes
to
        map(null, mydiv.childNodes)
in order to coerce it into an iterable object. This works.

I have then two questions:
   1. Was my expectation that the little script above should work
unfounded ?  If so, why ?
   2. Is there a better way to go around this problem ?  Maybe the
coerceToDOM function should check for the existence of node.apply
before using it ?

Thanks for any help.

--
Arnaud


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"MochiKit" 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/mochikit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to