One of my top feature request for IE8 was for it to support box-sizing. I’m happy to see that IE8 does support box-sizing although it has a annoying quirk. The DOM property name is not correct. The rule for translating CSS property names to DOM property names is to replace a dash followed by a character by the uppercase character. Using JavaScript it can be written like this:
function toCamelCase(s) {
return s.replace(/\-(\w)/g, function(_, c) {
return c.toUpperCase();
});
}
Since the CSS property for box-sizing in IE8 is -ms-box-sizing the DOM property name is should be MsBoxSizing. The -ms- prefix is a defacto standard for non standard CSS properties and Firefox, WebKit and Opera has tons of -moz-, -webkit- and -o- respectively.
We would therefore have to add a browser check in our function above:
function toCamelCase(s) {
return s.replace(/\-(\w)/g, function(_, c, i) {
if (MSIE && i == 0) {
return c;
}
return c.toUpperCase();
});
}
Not only does this require more code it also adds a mental obstacle and one more quirk to add to the already overflowing quirk-filled brains of developers world wide.
Attribute handling in the DOM is finally working. MS said that this was one of the hardest things to fix and yet they did it.
hashchange events simplify history management. I wish they implemented more of the HTML5 proposals when it comes to history state management but getting an event when the hash changes is so much better than what we have today.
Acid2
querySelector and querySelectorAll… nuf said
JScript is faster. There is a lot of room for improvements but this is a big step in the right direction.
postMessage. Now that all new browsers support it we can finally get rid of all those ugly, complicated and slow cross domain hacks that tons of sites rely on today.
Standard mode as good as possible by default. No need to opt in to get the best possible renderer.
Changes to namespaces in XHTML allowing third party to, in theory, implement binary behaviors for SVG embedded in XHTML.
ARIA support. I remember the hoops we had to go through to get Bindows 508 compliant. If there was only ARIA support back then it would have saved several months worth of frustrating work.
VML is not currently supportd in IE8 mode. This would not be so bad if canvas or SVG was supported but today sites have come to rely on being able to use vector graphics in web pages. MS says “Layout and rendering behaviors, proprietary features upon which VML is built, are not yet implemented in IE8 standards mode. Look for this feature in a future beta release.”
No opacity, rgba() nor any rounded corners in sight.
Yet another browser check needed. We used to only need to check the user agent, then we also had to check the document.compatMode and now we have to also check document.documentMode. Would it not have made more sense to just return MSIE7 in the user agent if IE8 is operating in IE7 mode?
No bug fixes to JScript. MS has an excellent paper covering their deviations from ES3 but yet they managed to improve on that situation. MS is waiting in ES3.1 but I think it would have been safe to fix some of these issues already. ES3.1 is on the fast track but I doubt there is room for any differences to what is already available in WebKit, Firefox and Opera today (which have tons of ES3.1 features and bug fixes today).
Still no way to get the computed style.
HTML5, and the W3C Web App group has a proposed standard for doing cross site XHR that is implemented in WebKit, Firefox (and Opera?). Yet, Microsoft introduces XDomainRequest which is very crippled.
MS built their DOM storage implementation on top of their old persistence behavior which uses XML files to store the data and since it does disk writes MS decided that their implementation would not be good enough to follow the proposed spec they made the whole API asynchronous. DOM storage is implemented in WebKit, Firefox and Opera.
Where is the DOM? MS kept asking what people wanted and every list I’ve seen has included DOM Level 2 events and DOM level 2 in general.
Acid3. 16/100 is not acceptable
[Revised to not sound as nagging as I always sound]
The JScript 5.7 patch is now being pushed to an IE6 computer near you…
IE6 uses Jscript 5.6 which has some design flaws when it comes to garbage collection. This is just a small issue for small applications but it is a large issue for large applications. Gmail is a large application and the GC problems caused IE6 to perform unacceptably slow. After talking to the JScript team they were really cooperative and they saw the need to push JScript 5.7 as an update to IE6. It is now being installed on all Windows computers. Expect Gmail to work better on an IE6 computer near you after a few more rounds of QA.
Firefox: del.icio.us/tag/firefox
Development
JavaScript
Firefox
mozilla
explorer
ie
compatibility
We finally got our act together and squashed some long standing bugs. This is the first bug fix release since we initially release ExCanvas over a year ago.
Download it from SourceForge.net
Thanks to everyone who tested, reported bugs and submitted patches.
Firefox: del.icio.us/tag/firefox
browser
JavaScript
Firefox
detection
safari
internet
explorer