Internet Explorer 8 issues with Compatibility View & EmulateIE7...
So, Internet Explorer 8 was just officially released. First off, I was really impressed with the download speeds. In the past downloading Day 0 releases from Microsoft have always been a bit problematic for me—because of the sheer volume of download requests. However, my download experience was very fast. Kudos Microsoft.
However, one of my main gripes from RC1 is still present—Compatibility view doesn't work consistently. If you're not aware, the following meta tag is supposed to force IE8 to run in Compatibility view:
However, I'm still noticing issues that are inconsistent between adding this to the HTML and a user manually activating Compatibility View for a site.
The quickest way for me to illustrate this is to show you some screenshots.
In our application, we have a table that has collapsible rows. This is what the table looks like in every browser but IE8:
If you click on the
icon, the row expands. This functionality has been working fine in Firefox, IE, Chrome, Safari in every major version.
Now, if you look at the grid in IE8 it looks like this:
It may not be immediately obvious as to the problem, but the root cause is how IE8 is handling the rowspan attribute of a table cell. In IE8 it's ignoring rows that aren't visible—therefore causing a corruption to the display. So the behavior in IE8 is quite a bit different.
So, let's see what happens if I turn on Compatibility view for this site (click on the
icon next to the address bar, or go to Tools > Compatibility View.) Now the table appears as I'd expect:
So great, IE8 can render the grid like we want—as long as the user turns on Compatibility View manually. But what users are going to think to do that? Probably none, but the most power users.
Fortunately, the IE team thought of this in advanced and implemented the X-UA-Compatible meta tag to give us a way to force a page to Compatibility View. So, now lets turn of Compatibility View and try forcing the mode by adding this meta tag to our code:
So, if everything works at you'd expect we should see everything render exactly as it did above. However, we get something quite different:
If you're wondering where the other rows went, look at the scrollbars on the side. What happens is instead of rendering each row the height that you'd expect, IE8 is rendering the height of each row the height of all the collapsed rows.
So, something is definitely amiss. I'm not sure what the difference is internal between using the meta tag and physically enabling Compatibility View for a site, but it's obvious from this example that they are not exactly the same.
I'm not sure what other issues might turn up from this, but it's important to keep in mind that the meta tag is not quite the fix that Microsoft promised.
So, if you're relying on the meta tag to resolve issues into you can fully test and fix issues on your site, just be aware that it might not be working as well as you'd like.
PS – I did test using <meta http-equiv="X-UA-Compatible" content="IE=7" /> as well, but that made no noticeable difference.
Comments
I don't think that it will ever be a substitute for testing in IE7. It's not like it's actually using IE7's rendering engine--it's just attempting to emulate behavior. Here's a link that lists some differences between IE8 Compatibility View and IE7:
http://blogs.msdn.com/ie/archive/2009/03/12/site-c...
Perhaps you might be able to get away with looking at a site in development in Compatibility View to ensure you're on the right track, but I suspect you'll always need to verify things in a full blown IE7 browser.
I have found several more which proves there is a difference.
I am so tempted at redirecting all my IE-users to firefox.com or something like that...
X-UA-Compatible: IE=EmulateIE7
I was able to resolve the issue via my JS code. The main point I wanted to warn people of is that there are differences.
Site developed in IE8 Normal mode does not work on Netscape or other Exploeres.
Also turning on the mode does have effects but not 100% correct
IE8 should be banned forever!!!
While i have kept Session timeout=500 in web.config and in IIS to.
On IE 7 it works fine.My web is ajax enabled.
What should i do to avoid this problem.
Please help me to avoid this problem.
I'd recommend asking for help on a forum dedicated to your server platform--the odds are your exact issue has come up before. I can only see IE8 timing out a session if your session management is cookie-based and the cookie is expiring for some reason. If you're passing session tokens along w/each request than there shouldn't be any problem.
The Issue - Lost IE 8 connectivity after removing Norton 360 A/virus software
I have connectivity to my LAN and can ping websites from the command line and receive confirmation ok but since reboot after Norton 360 was removed it cannot display any webpages using IE 8.
Workstation is running Vista on a home network. All other workstations have internet connection and the workstation that has this issue is ok with email, Windows Live messenger, anything that does not use IE 8.
I am as green as grass in this area so any help that could be provided would be greatly appreciated.
Thanks and regards,
Christopher Moore
De Winton, Canada
An Error has occurred in the script on this page.
Line: 15
Char: 2
Error: Object does not support this property or method
Code: 0
URL: file:///C:/Program%20Files/Microsoft%
20Office/Office12/INTLBAND.HTM
No other action from here results in success.
Any options / suggestions gladly welcomed.
Thanks,
Christopher Moore
De Winton, Canada
Microsoft is out to win. If you bemoan the fact that Microsoft does not "support" the web community or seem to want to make programmers' lives easier you're not really facing reality. Microsoft is a profit oriented company, they've done very well, and making your life easier has no place in their profitability.
I have a menu problem one my sites in IE 8 mode. Turning on compatibility mode fixes the issue but if I add an emulation meta tag to my document, I only get the fix sometimes.
If the browser was in normal mode prior to loading this page (both through refresh and links) then the menus continue not to work. If the browser was in compatibility mode before loading the page then the menus do work.
So its clear there the browser still has the compatibility mode state on or off even though the button is removed..
So for IE8 there's Normal, IE7 Compatible, Normal+IE7 Emulation, and IE7 Compatible+IE7 Emulation.
UI've un-checked it (and check that every morning, any more), but it keeps coming up, and turning itself back on, and interrupting my browser.
Is there a way to completely eliminate this piece of garbage?
but only one runs. Actually, working with forms, i need to show or hide fields depending on user choice. Example if there are two such questions, IE8runs only a first one, Whereas FFruns fine.
You can use:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
To force compatibility mode to IE8 (which essentially turns it off for your site.) It basic tells IE to render the site like it's IE8.
When I try to play Farmville and other games on Facebook I keep getting a Debug and Close message within seconds of intering the game The game reloads but the message comes back. How can I get past this and play the games?
"file:///C:/Program%20Files/Microsoft%20Office/OFFICE11/INTLBAND.HTM"
Can anyone advise me on how to get rid of this in a step by step process? I am getting this everytime I use the internet. I was not sure if I downloaded IE8 but if I did, can I remove or uninstall this so far? I was not having this problem but probably started in a month or two.
Your input is appreciated please email me for any help at wsimpoo@hotmail.com. Thank you so much.
Win
