I’ve created a Windows Sidebar Gadget which uses the filters collection on HTMLElements, so that I can show transition effects (between photos… the gadget is a photo viewer).
With the latest version of IE9 however, I’ve discovered that in some cases, the filters collection is not available; and throws an error when access to it is attempted.
Originally, I put this down to some weird problem with IE9 being in Standards mode instead of Quirks by default (as in IE9, Microsoft retired the style.filter property in favour of style.opacity in an attempt to be standards compliant with opacity), however after further debugging, this isn’t the case.
In all the following tests, the results came back the same for both gadgets that were throwing errors, and gadgets that weren’t:
document.documentModeis 5document.compatModeis BackCompattypeof some_html_element.style.filteris stringtypeof some_html_element.style.MsFilteris undefined
However, the following test gave different results:
typeof some_html_element.filtersis object in unbroken gadgetstypeof some_html_element.filtersis unknown in broken gadgets
A selection of useragent strings of broken gadgets are below:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; BRI/1; .NET CLR 1.1.4322; .NET4.0C)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; Tablet PC 2.0)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MATP; InfoPath.2; FunWebProducts; .NET4.0C; yie9)
A selection of useragent strings of working gadgets are below:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; yie9)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; MALN; InfoPath.2; .NET4.0C)
Unfortunately, the problem is baffling me so much, I can’t even reproduce it on my development machine; so I haven’t really got much more information to go on.
Anyone experienced anything like this before/ have any idea what could be causing it?
To ensure I’m making my question(s) clear:
- Has anyone experienced this before/ have any idea what could be causing it?
- Does anyone know any other variables I could report to the server to try diagnose the cause of the problem futher?
-
Bounty Edit: Can anyone download the gadget, reproduce the problem, and post detailed information on their Windows Environment (OS version, updates installed), and their IE configuration (version, plugins installed)?
If the gadget is broken, upon clicking any status icon (loading spinner, error icon) displayed in the top left of the gadget whilst hovering over it, you’ll see an error saying “Several problems (most noticeably disabled transitions) were introduced when installing Internet Explorer 9. We are actively working on a fix.”. You’ll notice there aren’t any transition effects between photo changes (and several users have reported the title/author/play back control bar has no opacity either).
N.B: Needless to say, cross compatability is not an issue for me. I need the gadget to run in IE7, 8 and 9 and that’s it (Windows Sidebar uses a mangled version of the copy of IE installed behind the scenes).
I downloaded the gadget and see no problems. I see the transitions (dissolve) and control bar transparency is also there.
My user agent:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)I’m running Win7 x64 SP1, IE9 32bit. I do not have many addons, just a few including Shockwave, Kaspersky AV Broswer helpers, MS Office cache handler, WIndows Live Sign In helper.
Based on the broken user agents, the problem seems to be in some variants of IE7. Also if you look at the last one, there is this
FunWebProductsin it which tells me that there are other components on the system (addons/activex maybe) which could be interfering.Not sure but I would suspect windows updates to be a culprit too.
It is hard to say exactly what is causing this issue, but here’s few pointers:
if (!/MSIE (5\.5|6|7|8)/.test(navigator.userAgent) || typeof filters == 'unknown') return;which can probably help you in general too.Except for the last bullet, everything else are vague pointers. If you can, use Blackbox. Pretty sure you’ll be able to find what’s causing the issue.
It definitely looks like the code is not the culprit, but a combination of factors/components on those systems that are causing this.