What is being detected as a string with $type? Can you show us some code? -- Fábio Miranda Costa Solucione Sistemas Engenheiro de interfaces Twitter: fabiomiranda http://solucione.info
On Wed, Jun 30, 2010 at 9:41 AM, Srinivasan M <[email protected]> wrote: > Thanks Fabio. I just did that and found that IE7 and FF are working good. > Only IE8 is the pain. The exact issue is that mootools '*clone*' does not > copy the attributes of the object being cloned. This is because of > > clone > |__ new Element(this.nodeName. > toLowerCase(), attributes) > |___ Element.initialize > |___ document.newElement(tag, props) > |__ > $.element(this.createElement(tag)).set(props) > > |__ $type(prop) > > the $type function checks for "$obj.family.name" which strangely comes out > to be a string for I8 and undefined for IE7 and FF. As a result the since > the type comes out to be a string (in IE7 & FF) this comes out to be Object, > the properties are not copied over in IE8. > > > > 2010/6/30 Fábio M. Costa <[email protected]> > > Srinivasan, you don't know where you are having the problem? >> Try IE8 with IE7 mode on and check the console output. >> >> -- >> Fábio Miranda Costa >> Solucione Sistemas >> Engenheiro de interfaces >> Twitter: fabiomiranda >> http://solucione.info >> >> >> >> On Wed, Jun 30, 2010 at 6:19 AM, Srinivasan M <[email protected]>wrote: >> >>> Hi Piotr - Glad to interact with the creator of jsFiddle :). A big thanks >>> to you for developing such a wonderful tool. >>> >>> I thought the same when Oskar requested for code to be posted in >>> jsFiddle. But do you have any clues as to how to make my site work for IE? I >>> debugged to the code which I had posted here using Firebug and IE8 inbuilt >>> JS debugger. >>> >>> >>> On Wed, Jun 30, 2010 at 2:40 PM, Piotr Zalewa <[email protected]> wrote: >>> >>>> Hi Srinivasan, >>>> >>>> Although the answer is "Yes, you'll be able to do that" I wouldn't >>>> recommend it. >>>> The idea behind MooShell which is adopted by jsFiddle is to strip down >>>> the code to exactly show where the problem is. >>>> Copying whole website is pointless as I don't see anyone who will search >>>> for the problem in a big and messy (you mentioned mixed Prototype and >>>> MooTools) code. >>>> >>>> Just my $0.02 >>>> >>>> >>>> On 06/30/10 09:59, Srinivasan M wrote: >>>> >>>> The webpage where the javascript is present is >>>> http://www.ps-wein-neu.de/suche/wein-aromen-baukasten.htm >>>> >>>> This page has used minify library and is using a number of javascript >>>> libraries (Prototype, Mootools etc). Would I be able to upload them all to >>>> jsfiddle.net? >>>> >>>> On Wed, Jun 30, 2010 at 12:57 PM, Oskar Krawczyk < >>>> [email protected]> wrote: >>>> >>>>> Can you post your code on jsfiddle.net and paste back a link? This >>>>> will help in debugging. >>>>> >>>>> O. >>>>> >>>>> On 30 Jun 2010, at 02:53, srinigenie wrote: >>>>> >>>>> > Hi all, >>>>> > >>>>> > I am trying to use mootools for a drag and drop feature and found >>>>> > that my code does not work in IE - >>>>> > >>>>> > URL: http://www.ps-wein-neu.de/suche/wein-aromen-baukasten.htm >>>>> > >>>>> > I debugged this a bit and found the place where the issue is, but >>>>> > beyond that have no pointers to proceed. Any help is appreciated. >>>>> > >>>>> > My code that calls the clone method of mootools: >>>>> > item.addEvent('mousedown', function(e) >>>>> > { >>>>> > e = new Event(e).stop(); >>>>> > var el = e.target; >>>>> > el = $(el); >>>>> > var clone = el.clone() >>>>> > } >>>>> > >>>>> > Flow inside Mootools script: >>>>> > clone >>>>> > |__ new Element(this.nodeName.toLowerCase(), attributes) >>>>> > |___ Element.initialize >>>>> > |___ document.newElement(tag, props) >>>>> > |__ >>>>> $.element(this.createElement(tag)).set(props) >>>>> > >>>>> |__ Element.set(prop,value) >>>>> > >>>>> |__ $type(prop) >>>>> > >>>>> > Now in this flow, the behaviour of function is different between IE & >>>>> > FF: >>>>> > function $type(obj){ >>>>> > if (obj == undefined) return false; >>>>> > if (obj.$family) return (obj.$family.name == 'number' && ! >>>>> > isFinite(obj)) ? false : obj.$family.name; >>>>> > if (obj.nodeName){ >>>>> > switch (obj.nodeType){ >>>>> > case 1: return 'element'; >>>>> > case 3: return (/\S/).test(obj.nodeValue) ? 'textnode' : >>>>> > 'whitespace'; >>>>> > } >>>>> > } else if (typeof obj.length == 'number'){ >>>>> > if (obj.callee) return 'arguments'; >>>>> > else if (obj.item) return 'collection'; >>>>> > } >>>>> > return typeof obj; >>>>> > }; >>>>> > >>>>> > FF has 'obj.$family' as Undefined whereas IE has value for this as >>>>> > '[object Object]'. Because of this FF works as it returns back as >>>>> > Object whereas IE returns as a string. >>>>> > >>>>> > Thanks, >>>>> > Srini >>>>> >>>>> >>>> >>>> >>>> -- >>>> "The best way to make your dreams come true is to wake up." - Paul >>>> Valery >>>> >>>> >>>> >>>> -- >>>> blog http://piotr.zalewa.info >>>> jobs http://webdev.zalewa.info >>>> twit http://twitter.com/zalun >>>> face http://facebook.com/zaloon >>>> >>>> >>> >>> >>> -- >>> "The best way to make your dreams come true is to wake up." - Paul Valery >>> >>> >> >> > > > -- > "The best way to make your dreams come true is to wake up." - Paul Valery >
