IE 8 Document and Browser modes
Controlling IE 8 Browser and Document Modes
In Internet Explorer 8 the developer toolbar can control the following settings and will override any other settings that have been set e.g META tags or the Compatibility View options. On changing a setting the browser will refresh and load the appropriate new configuration.
I will list out the various document and browser modes with the basic differences but if you are in a hurry and just require a Javascript function that you can use to determine the clients current IE8 settings then that link will sort that for you. For an explanation on browser compatibility mode testing then this link will give you an article explaining the combination of agent sniffing and object detection that is required for identifying a clients IE8 browser settings.
Browser Modes:
Internet Explorer 8 Mode
The browser will run as IE 8.0 and the user-agent will appear as an IE 8.0 user-agent e.g
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB5; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 1.1.4322; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Notice the mention of Trident/4.0 which is the name and version of the rendering engine.
A new Javascript engine is used in IE 8.0 so there will be numerous differences for example using getElementById to return an element by name will not work anymore which is the correct way of doing things however if you didn't know this and did use it in IE to access elements you will experience errors when running in full IE 8 mode.
Internet Explorer 7 Mode
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB5; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 1.1.4322; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Javascript will run as it does in IE 7.0 for example using getElementById to return an element by name will work.
Internet Explorer 8 Compatibility Mode
"In a nutshell, Compatibility View allows content designed for older web browsers to still work well in Internet Explorer 8."
So in all respects the browser is still running as IE 8.0 but allows sites that worked perfectly well in IE 7.0 to continue to work correctly without having to revert to IE 7.0 mode.
By default IE will set all publicly accessible Internet sites to run in IE 8 mode and all Intranet sites to IE 8 compat mode.
The user-agent in IE 8 Compatibility Mode is displayed similarly to IE 8 but with a 7 e.g
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; GTB5; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 1.1.4322; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Javascript should run as it did in IE 7 for example using getElementById to return an element by name will work.
Document Modes:
Quirks Mode (e.g IE 5)
Internet Explorer 7 Standards Mode
Internet Explorer 8 Standards Mode (Page Default)
For a list of the various changes and potential problems that IE 8 will bring to your development view the following article: http://blogs.msdn.com/ie/archive/2009/03/12/site-compatibility-and-ie8.aspx
How to detect which settings are enabled
If for whatever reason you need to detect client side which of these various settings the user currently has enabled in their browser then you can use a combination of user-agent sniffing and object detection to work out the true browser version and rendering engine. See the following article about how to detect the settings using Javascript.
The new META UA-Compatible tag
Another new feature in IE 8 is the ability to quickly fix any potential problems that all these new document and browser modes may bring by adding a META tag to your existing sites. To force a page to run in IE 8 standards mode we can add the following META tag to pages:
<meta http-equiv="X-UA-Compatible" content="IE=8">
Or if you find that your sites do not currently work in IE 8.0 standards mode you can force them to work as they did in IE 7.0 with the following META tag:
<meta http-equiv="X-UA-Compatible" content="IE=7">
Once you get your site up to scratch you can remove the tags.
Labels: Browser detection, compatibility, document, features, IE 8, META, mode, X-UA-Compatibility


4 Comments:
Very good article .. lots of useful info .. thnx very much
Shouldn't that be http-equiv= rather than just equiv=?
LOL well spotted, See I throw those little bugs in to see if anyone spots them, you win todays prize!
I don't know what happened there to be honest as I've just checked the original text file that the article was copied from and they were specified correctly so maybe the editor stripped them along the way and I didn't notice. Thanks for letting me know.
Nice summary, thanks. One unexpected oddity - I decided to tag this in delicious ("web"), and it's suggested tags (from my existing store) were "humor comics" so the normal thrust of your blog must include a bit more levity than I saw in this article!
(got here by google, not a regular reader)
Post a Comment
Subscribe to Post Comments [Atom]
Links to this post:
Create a Link
<< Home