Details
Description
Internet Explorer 9 contains a new feature to block all ActiveX content by default:
http://ie.microsoft.com/testdrive/Browser/ActiveXFiltering/About.html
If the feature is enabled, all ActiveX controls are blocked silently. With Wicket this currently results in a lot of JavaScript content (but not all of it) being blocked as well. The user can allow an exception by clicking on a small icon in the address bar, however, he usually will be only able to do so, if he knows exactly what causes the problem.
A user who enabled the feature himself might still see what is wrong, but the feature can be also enabled in a domain policy, which might make solving the problem much more difficult and have adverse effects on customers.
The reason that some JavaScript content is blocked along with blocking ActiveX elements is the usage of window.ActiveXObject:
wicket-ajax.js:
>if (window.ActiveXObject)
{ > transport = new ActiveXObject("Microsoft.XMLHTTP"); > Wicket.Log.info("Using ActiveX transport"); >}else if (window.XMLHttpRequest)
{ > transport = new XMLHttpRequest(); > Wicket.Log.info("Using XMLHttpRequest transport"); >}According to
http://blogs.msdn.com/b/ie/archive/2011/05/02/activex-filtering-for-developers.aspx
the usage of this pattern is not advisable and the order should be changed to:
>// Best Practice: Use Native XHR, if available
>if (window.XMLHttpRequest)
>else if (window.ActiveXObject)
{ > // ...if not, try the ActiveX control > var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); >}The problem is reported to be fixed in JQuery 1.5.1, for instance.