I have JSF / Richfaces web app. This application was originally intended for IE6 Browser. Now we have to port it to IE-8 as well. The App Server is Weblogic 10.3. I tried the below solutions.
A filter to add Header param, X-UA-Compatible.
JSF PhaseListener to add header param, X-UA-Compatible.
Added Meta tag in the first line of head in the page.
None of the above works. Also I'm unable to any custom header values. HttpRequestWrapper doesn't work as well.
Please suggest solutions. I always wish I could use scriptlets in JSF or logic tags anywhere in JSF.
The X-UA-Compatible option in IE8 can only work as a fall-back for IE7 compatibility. It does not have an option to emulate IE6.
Because of this, the situation you're in -- having an intranet app that is written for IE6 and does not work in IE8 -- is one of the main reasons why companies have stuck with IE6 for so long: it can be quite hard to upgrade.
The ideal solution, of course, is to update the code in your site so that it works in IE8 (or better yet, IE9). This can be a long and expensive process, but there's no official short-cut solution.
If you can't update your site, you will have to stick with IE6. But there are some solutions that might make that less painful.
The obvious quick-fix answer is to upgrade your main platforms to IE8 or IE9, but continue to run IE6, keeping in a virtual machine, and use it just for the specific site(s) that need it. There's also the ultra-cheap option of IETester, which is an app that can run multiple versions of IE on the same machine (including IE6). However IETester is known to crash frequently, so is probably not an ideal solution. It's good for testing a site in various IE versions, but not for actually getting useful work done.
These would be stop-gap measures at best, but will keep you running while allowing you to upgrade the rest of your infrastructure.
A slightly more robust answer might come in the form of Browsium. This is a product launched by some ex-Microsoft engineers, aimed at helping old IE6-specific sites work in newer versions of Explorer. See also this article for a good real-world example of what they can do.
In the long term, you will have to update your site eventually; IE6 can't last forever, even with solutions like Browsium. But these solutions will allow you to hold back from having to make changes in the short term.
If you're making the upgrade now, I would strongly suggest skipping IE8 and moving straight to IE9 if at all possible. IE8 is already obsolete, and will cause similar upgrade issues to IE6 (although probably not quite as bad) when its support ends.
For Hide CompitibilityView Button in IE 8 9 In Jsf you just have to put this code in your PhaseListner Implemented Class
#Override
public void beforePhase(PhaseEvent event)
{
response.addHeader("X-UA-Compatible", "IE=edge");
}
Simply Add this line in Implemented PhaseListner class
Related
It just so happens that on iOS 10.3 Safari (and may be even older versions too) the web pages bounce when scrolling ends. I do not want that fancy bouncing on my own website and the ones I visit. Much prefer just the standard scrolling behavior!
Is there a standard "non-hacky" way, i.e. without using javascript's event.preventDefault(), to stop Safari from doing this? Unable to find anything related to this on Apple's documentation site that works.
I got this job which I have to create a promotional website for a prefecture and they are asking me to list the minimum system requirements a user must fulfill to access this website. I am not sure on how to make this list. The website will have two versions: one very simple for older browsers and computers, and another one responsive. The idea is to maintain everything very simple, without any animation or something that would be difficult to run on older browsers.
What do you guys think would be a safe way to describe the minimum system/browsers version for using a website like this?
Thank you very much!
Most web development companies set a minimum level of browser support, not so much system specifications. My development company specifies the most recent two versions of Internet Explorer, FireFox, Safari and Chrome. If they need to support older browsers, I would set the minimum to IE8 and maybe 10 previous versions of FireFox, Chrome and Safari.
Also, you should use something like the HTML5 boilerplate and feature detection in the site. That way you can build one website that satisfies all of the requirements. Building two separate sites becomes a nightmare when it comes to future updates.
As we all know that Microsoft and Mozilla had released the latest browsers IE9 and Firefox 4 recently, and I want to use them in our projects/sites, but I don't know what's the risk if I upgrade them, which means I'm not sure our sites can be shown correct or not on these latest browsers, if someone can give me some advices on this issue will be helpful, thanks.
When you say that you "want to use them in [your] projects/sites", am I correct in believing that you want your sites to test well against them?
If so, then I humbly submit that's the wrong way to look at it. The greater danger is in NOT supporting the new browsers, because your visitors will be using them, regardless of your decision. Therefore, you MUST test your sites against them, because if your site breaks, then your visitors won't return. (If these are completely internal visitors, like for an intranet, then you block your staff from being able to stay current with other current web applications.)
The real question is whether you want to keep supporting older browsers. For now, that's required, too. You must build your sites in such a way that they work correctly in ALL relevant browsers. IE7 is still used by a lot of people, so you might continue supporting it (for now). IE8 is a must, as is Firefox 3, Chrome 10.0, and Safari. (I don't know the current Safari.)
Many websites publish statistics on the commonly used browsers. It's your decision how low of a percentage you want to support. Personally, I would support any browser having market share above 10%, unless you're a VERY highly trafficked site, in which case, I MIGHT support any browser above 2%.
If you're concerned about how you can continue testing against older browsers, then Internet Explorer has a "Developer Tools (F12)" feature that allows you to change your rendering to match older versions. I don't know about other browsers, but I think you can have both Firefox 3 & Firefox 4 installed on the same machine. Until you have a way to continue testing Firefox 3, do not install Firefox 4, at least until it surpasses Firefox 3 in use.
there are document compatibility modes for all versions of IE browsers, but none for IE6. why is it like that? how can I make IE8/IE7 browser display a website in IE6 standards mode? other than changing the code to use conditional statements for different browsers, or different websites altogether, is there any easier or better solution for this issue?
http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" >
I did try using the IE5 mode, but didn't work. there are issues with page layout like width, height, scrollbars etc. (I haven't tested it extensively in IE8 yet). currently I am looking for a short term solution to release the app to the users with minimal changes for the updated browser and code will be changed later to make it fully compliant with IE8.
thanks,
Rama
No, there is no IE6 Standards Mode, because Microsoft already abandoned IE6 Standards Mode with the IE7 release.
IE8 is built on — and is largely bug-compatible with — IE7. But IE7 Standards Mode was already not bug-compatible with IE6 Standards Mode. Microsoft aren't going to go crazy trying to dig out and re-implement IE6 bugs in IE8, when in their collective mind those bugs are already gone forever since developers surely must have updated their sites to work with IE7 already.
Of course in reality terrible webapps that rely on IE6 bugs do still exist, so a depressing number of corporates are still stuck with IE6, making the whole world worse for everyone. It would have been helpful to have introduced the EmulateIEn functionality in IE7 so that IE6 bug-compatibility could be preserved. However no-one had thought of it at that point, so it's gone forever and a whole load of corporate Vista upgrades were aborted because of the lack of IE6 compatibility. Whoops!
(Oh dear. If only someone hadn't integrated IE with the OS we wouldn't have all this difficulty: one could run multiple versions of IE and consequently each new version wouldn't need to retain the bugs of the previous version. IE would be smaller, faster, better; users could upgrade without fearing loss of functionality; with more upgrades we could author to the new stuff in IE8 more readily; and MS would have made more money on OS upgrades. Funny how these decisions come around to bite you, huh?)
Only the IE team can really answer why they no longer support the seriously buggy implementation of IE6 standards mode. One can only speculate "because its seriously buggy".
I'm afraid if you want to support IE6 you will have to jump through all the painful hoops that everyone else has to. Commercially you may have to, but if you don't I would recommend you simply don't.
There's no need for an specific setting for IE6, once the rendered for IE6 is the same of IE5.5, so setting up for IE5 you automatically set for IE6.
The difference between IE5 and IE6 is the implementation of better JavaScript (if I recall correctly) but no alteration was made in the rendering engine.
The first update in the rendering engine was in IE7, and a major overhaul was made in IE8.
The solution is quite simple:
Make the code compliant to IE8 before releasing to the user.
When you are working on a new website, what combinations of browsers and operating systems do you target, and at what priorities? Do you find targeting a few specific combinations (and ignoring the rest) better than trying to strive to make them all work as intended?
Common browsers:
Firefox (1.5, 2, 3)
Internet Explorer (6, 7, 8-beta)
Opera
Chrome
Common operating systems:
Windows (XP, Vista)
Mac OSX
Linux
Unix
Mainly I just target browsers as the sites I've built don't really depend on anything OS specific. As mentioned above, YAHOO's graded browser support guide is a good starting point on determining which browsers yous should/could support. And Yahoo's User Interface library (CSS+JavaScript) helps massively in achieving this.
But when developing sites I primarily do it on Firefox2 as it has the best web developing tools (firebug + wed developer toolkit). Then I also test my sites with Opera 9.5 as it's my browser of choice for browsing. I've previously lost all hope on supporting IE6 at any reasonable level so these days I just inform my users to upgrade to IE7 which is almost capable of displaying sites similarly to FF2/3+Chrome+Opera.
FF3 and Chrome are so new at the moment that I tend to ignore them, but I must say: They're friggin fast! My javascript/css heavy sites are noticeably faster with them.
I'm doing:
Firefox 2 and up
IE 7 and up
Konquorer or Safari (or maybe now Chrome)
Yahoo's graded browser support is a good guide:
It depends on your audience. If you are heavy on tech users, you may have 50% of you users as Firefox. If you have lots of mom and dads, you will probably have 75-80% of your users being IE 6 or 7. You probably need to get a alhpa/beta out with Google analytics so you can get a measure of your audience.
Where I work, we target
Firefox 2 and 3 on Windows
Firefox 2 and 3 on Mac
Safari on Windows and Mac
IE 6 and 7
We are not specifically targeting any Linux browsers, but if they work in the list above, there's a good chance they work everywhere. We are also testing against Google's Chrome browser on Windows now.
I just figured out this week that if you bend a little and figure out how to validate your HTML you're much more likely not to have to care about cross browser stuff.
Oh yeah, except Javascript.
I get it working in Firefox first, that's what the boss uses. Opera last, that's what Bob uses. Har Har, just kidding Bob.
But even so, you can never be safe because the minutia of browser incompatibility and the fact that 90% of the people you ask can't really tell you which browser they're using.
Can you click help and about? (Pause) No? Oh, that right you're using IE7
And even that old standby doesn't work anymore.
My advice is to lock down IE, like it's a terminal server, and try navigating your website. If you can click on everything and read everything then you're in the clear.
If you use sIFR and someone calls you telling you you're logo is upside down, it's time to prioritize and worry about compatibility again, otherwise IE and FF and you're good to go.
Target none. Test against many.
Where I work, we test the following (in this order of priority, based on data from google analytics), all on Windows:
IE 7
IE 6
Firefox 3
Firefox 2
Safari 3
We don't bother with Opera or older versions of browsers since the percentage of users is very small, however we do our best to code everything to standards, so there shouldn't be any big issues.
Of course, like Milhous said, it depends on your particular audience. YMMV.
The standard suite I'm used to is:
IE6 (win)
IE7 (win)
Firefox 1.5+ (win/mac)
Safari 2+ (win/mac)
Opera 9+ (win/mac)
Chrome (so far, if it clears Safari 3.0 on win, it seems to clear Chrome, too)
You could also generically claim support for IE6/7, Gecko, and WebKit... and it covers everything listed here but Opera, plus a few not listed. It's just a lot harder to test just the rendering engine and not the specific differences in browser versions and feel comfortable with the results.
I agree you should try and make it work in all, but if it is a new site I would seriously consider dropping support for IE6. From a development perspective it will save you hours of hair pulling if you don't need to support it.
You'll have to weigh this against your intended audience and whether you are willing to lose some customers that won't be willing (or able) to upgrade their browser.