Our marketing folks are going to kill me for posting this one before they have a chance to post in a newsletter/press-release, but well - this is the purpose of this blog anyway. We tell you things before they get released through the official channels and we even tell you things that will never make it out in the public because they are plain stupid. But I digress.
I have been testing r.a.d.controls with IE7 Beta for a week now using my patent-pending and award-winning testing approach and... everything works fine! While this information is still unofficial and we are currently trying to port our jsUnit and Selenium tests to IE7 Beta, the preliminary results are very encouraging. This is very important for us and our clients for several reasons:
- this means that the client-side code of r.a.d.controls is solid & reliable and written in a browser/version independent way (shameless self-praise)
- tihs means that the official IE7 release is no longer something to worry about for us, you and your end-users, since solutions powered by telerik products will work fine.
I will get technical on point #1. There are many factors to take into account, but one of the most important ones is object detection. This is a javascript technique to detect if the current Document Object Model supports the actual objects/functions you'll be using. This is a very robust approach since detecting browser types/versions client/server side and actually using this version information later is prone to bugs - for example some IE service packs break some functionality and Opera browsers tend to fake Internet Explorer mode. Example:
// Good - the Object Detection Way. This is how it should be done.
if (window.attachEvent)
{
window.attachEvent('onunload', dispose);
}
// Bad. This is the most common IE client-side detection though.
if (document.all)
{
window.attachEvent('onunload', dispose);
}
// Ugly. And will not work in IE7. I actually got this from the netscape.com Javascript reference.
var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie6 = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) );
if (is_ie6)
{
window.attachEvent('onunload', dispose);
}