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