IE7 User Agent String
Ever since the release of the new layout on SoccerProject, some IE7-users had been reporting the same bug. The advertising banner at the bottom of the screen was not moving when they tried to scroll (up nor down). Very annoying because sometimes very crucial functionality was hidden by the banner. Because the bug only appeared with some users and it was not reproducable by me, I never had a clue about the cause. None of my questions about this bug were decently answered, so it seemed like this puzzle would never be solved. Very discouraging, but that’s what IE7 is known for, isn’t 😉
Until recently manager JNV reported the problem again. He found out himself that his IE7 browser was identifying itself as IE6 by using the User Agent String
[Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)]
Changing this in the registry solved his problem. He even provided me the code for two .reg-files which I could use for testing.
Allthough I was very glad to know the cause and to even have a solution, this was not going to solve the problem for all those users who never make it to the forum, so I needed to keep looking for a solution. Obviously this was a lot easier now I knew how to reproduce the problem, by simply double-clicking the correct reg-file.
In the process I learnt that it’s very easy to your own User Agent string by filling in
in the address bar of your browser. It turned out that my IE7-browser had this User Agent String:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; formsPlayer 1.4; Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Or after clicking the other reg-file :
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; formsPlayer 1.4; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
I expected the strings to be different, but I never expected it to be double. I mean the string “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; formsPlayer 1.4;” is simply repeated. Only in the second case it’s with a small change, IE 6 instead of IE 7. In fact this opened up the possibility to a solution, because now I could still check if the browser was IE7, although it also identified itself as being IE6. That would never have been possible if the User agent string wasn’t repeated. I’m not sure this is how MS meant it to be used, but at least it has worked for us.
Of course, if the user Agent is simply “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ;” We will never be able to display everything correctly, because the client identfies itself different from how he renders the page, but that should never be the case, unless a user explicitly wants this.