Dear everybody,

I encountered the same problem and I might have a solution! After a
day of searching for the problem, I stumbled upon QuirksMode (again)
and there I found some valuable info on attributes and the way to
approach them. See http://www.quirksmode.org/dom/w3c_core.html#attributes
for more info.

On Internet Explorer the Element.getProperty method in Mootools 1.11
gets an element's attribute's value directly using:

elm.attributes['title'].nodeValue;

This is highly discouraged by QuirksMode, but seems to work fine for
<MSIE8.

So my solution is to check if the useragent is >MSIE7 and then use the
next code to retrieve the attributes value:

elm.getAttribute('title');

I slightly modified the Element.getProperty method and attached it to
the Element-object using the extend method. Place the following code
somewhere on your page after loading MooTools and before using the
getProperty method. Works fine for me!

Element.extend({
        getProperty: function(property){
                var index = Element.Properties[property];
                if (index) return this[index];
                var flag = Element.PropertiesIFlag[property] || 0;

                // Commented old line
//              if (!window.ie || flag) return this.getAttribute(property, 
flag);

                // Two new lines: put MSIE version number in var msie and check 
if
this is 8 or higher
                var msie = 
navigator.userAgent.toLowerCase().match(/msie\s+(\d)/);
                if (!window.ie || flag || msie && msie[1]>=8) return
this.getAttribute(property, flag);

                var node = this.attributes[property];
                return (node) ? node.nodeValue : null;
        }
});

Best of luck,
Laurens Meurs (Rotterdam, the Netherlands)

Reply via email to