So onpropertychange doesn't fire in response to the disabled property, but it does fire in response to the style property, so all we have to do is associate a change in disabled state with a change in style, and we can do that using an expression :)
First add the expression, and associate the elements disabled property with a style property - anything will do, and it doesn't even need to change value. I used 'zoom' with a value '1':
element.style.setExpression('zoom', this.disabled ? '1' : '1')
Then simply define the onpropertychange handler to listen for the change:
element.onpropertychange = function()
{
if(event.propertyName == 'disabled')
{
alert('disabled property has changed');
}
};
It's a terrible hack of course, but everything in IE is a terrible hack :) Note that the onpropertychange will also fire when initially setting the expression, but the propertyName will bev 'style.zoom' so you can filter that out as indicated.