After playing with the IE9 beta, we’ve identified some issues web developers may have with their existing javascript/css code. Here are the details:

  • Many IE workarounds for canvas management (i.e. excanvas hacks) are not now required. Hit the jump for a jquery.jqplot.js diff file.
  • Some other random IE8 fixes are now no longer required, but are still triggered by IE9. Hit the jump for an updated TinyMCE build.
  • IE specific CSS stylings are now not really required as they once were, so if you have CSS conditional definitions, update them to exclude IE9 (again, hit the jump for how we’ve updated this)
  • IE9’s user agent is now Mozilla 5.0 instead of Mozilla 4.0 (hooray!). This blog post explains all.

 

Updating jqplot for IE9

Index: jquery.jqplot.js
===================================================================
--- jquery.jqplot.js	(revision 366)
+++ jquery.jqplot.js	(revision 367)
@@ -1245,7 +1245,7 @@
         this._elem.css({ position: 'absolute', left: this._offsets.left, top: this._offsets.top });
         
         this._elem.addClass(klass);
-        if ($.browser.msie) {
+        if ($.browser.msie && $.browser.version!='9.0') {
             window.G_vmlCanvasManager.init_(document);
             elem = window.G_vmlCanvasManager.initElement(elem);
         }
@@ -3209,10 +3209,10 @@
         this._elem = $(elem);
         this._elem.addClass('jqplot-grid-canvas');
         this._elem.css({ position: 'absolute', left: 0, top: 0 });
-        if ($.browser.msie) {
+        if ($.browser.msie && $.browser.version!='9.0') {
             window.G_vmlCanvasManager.init_(document);
         }
-        if ($.browser.msie) {
+        if ($.browser.msie && $.browser.version!='9.0') {
             elem = window.G_vmlCanvasManager.initElement(elem);
         }
         this._top = this._offsets.top;

Updating TinyMCE with IE9 fix

Index: tiny_mce_src.js
===================================================================
--- tiny_mce_src.js	(revision 392)
+++ tiny_mce_src.js	(revision 393)
@@ -19,6 +19,7 @@
 			t.isIE = !t.isWebKit && !t.isOpera && (/MSIE/gi).test(ua) && (/Explorer/gi).test(na.appName);
 
 			t.isIE6 = t.isIE && /MSIE [56]/.test(ua);
+			t.isIE9 = t.isIE && /MSIE 9.*/.test(ua);
 
 			t.isGecko = !t.isWebKit && /Gecko/.test(ua);
 
@@ -2002,7 +2003,7 @@
 				// IE 8 has a bug where dynamically loading stylesheets would produce a 1 item remaining bug
 				// This fix seems to resolve that issue by realcing the document ones a stylesheet finishes loading
 				// It's ugly but it seems to work fine.
-				if (isIE && d.documentMode) {
+				if (t.isIE && d.documentMode && t.isIE9) {
 					link.onload = function() {
 						d.recalc();
 						link.onload = null;

Updating CSS definitions to exclude IE9

Change
<!--[if gt IE 6]>
to
<!--[if (gt IE 6)&(lt IE 9)]>

Please feel free to post a comment if you have your own IE9 beta fix. We’ll update this page as we encounter more bugfixes!