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

Reply via email to