That's weird.

Slick actually finds the element with id 'sauce' using IE's native
getElementById(), but then rejects it because the id specified
('sauce') doesn't match the 'id' attribute of the found element on the
document's DOM tree (which still gives out 'cloneMe').

That looks like an IE bug to me, as even after changing the id of the
element (which itself is confirmed to have worked because
getElementById() returns the element by the new id), but the DOM still
contains the old id for the element.

Here's the break down of what happens:
        // string '#sauce' is stripped of the hash, so that value for id is
'sauce'
        // this.getElementById() finds and returns in el the cloned element
with id 'sauce'
        var id = expression.substring(1), el = this.getElementById(id);
        // checks if we need to bail out because nothing was found, but it's
not the case here
        if (!el) return found;
        // special check for IE, because IE might return element by name,
instead of by id.
        // so we check against the DOM tree to see if the id matches the
corresponding attribute
        if (local.idGetsName && el.getAttributeNode('id').nodeValue != id)
return false;
        // and false is returned, because el.getAttributeNode('id').nodeValue
returns 'cloneMe'

So, basically, el.getAttribute('id') gives out 'sauce' but
el.getAttributeNode('id').nodeValue still gives 'cloneMe'.

Jonathan R.-Brochu

On Oct 25, 2:57 pm, Phil Freo <[email protected]> wrote:
> I've had about half of IE7 users tell me it works, and half say it's
> broken.  It might even have to do with a minor release of IE or the
> version of JS inside IE.
>
> What's the full IE7 version you're testing on?
>
> I've been able to reproduce the bug so far on:
> IE 7.0.5730.13IC
> IE 7.0.5730.13.xpsp.080413-2111
>
> On Oct 25, 11:35 am, Oskar Krawczyk <[email protected]> wrote:
>
> > Tested on IE7/xp - works fine (the alert appears).
>
> > O.
>
> > On 2010-10-25, at 20:13, Phil Freo wrote:
>
> > > Hello,
>
> > > I've found a pretty bad bug in Mootools 1.3 that didn't exist in 1.2, 
> > > that affects IE6-7 users.
>
> > > I've mentioned this on IRC and not everybody is able to reproduce it, but 
> > > I have had several people be able to reproduce it on different computers 
> > > running IE6-7, and it has been the root cause of a lot of user complaints 
> > > recently on Quizlet.com.
>
> > > The follow pages "work" if you get an alert('sauce') popup.  They don't 
> > > work if you get a JS error.  (NOTE: Only IE6-7 are affected).
>
> > > Simplified snippet of the bug:
> > > On 1.2 (this work's fine, alert() msg) ->http://quizlet.com/moo2.htm
> > > On 1.3 (this is broken in IE6-7, js error, no alert()) 
> > > ->http://quizlet.com/moo3.htm
>
> > > Screenshots from browsershots.org:
> > > On 1.3 (IE6, broken) 
> > > ->http://browsershots.org/screenshots/8dac1f27fb13eb66ae567b4cbe86bb1f
> > > On 1.3 (IE7, broken) 
> > > ->http://browsershots.org/screenshots/5750950ec55a32673d4595bdabc9ffbf
> > > On 1.2 (IE6, works) 
> > > ->http://browsershots.org/screenshots/ca52437ac6722955a23b7d729f994ce7
> > > On 1.2 (IE7, works) 
> > > ->http://browsershots.org/screenshots/f9870b41a948a5c6521289e40e047c13
>
> > > There's definitely a problem... (I've reproduced it on several different 
> > > real PCs with native IE7 installations, as well as a couple different 
> > > virtual machines with IE6).
>
> > > What's the next step here?
>
> > > Thanks,
> > > Phil

Reply via email to