Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Force IE 11 "User agent string" using tags

My website is broken in IE11.

We all know that HTML tags allow developer to force IE compatibility mode; in example

<meta http-equiv="X-UA-Compatible" content="IE=8, IE=9" />

worked great and solved the visualization problems for IE10.

But actually on IE11, even if Compatibility mode is set to IE9, User agent string is set to default and javascript doesn't work. Changing manually User agent string to IE10 solved my problems.

For shure I'm going to solve the real problems that cause website errors, but actually I need a fast, programatic way to force "User agent string" to IE10, since I can't contact every user.

Can someone help?

like image 755
Emanuele Greco Avatar asked Nov 21 '13 12:11

Emanuele Greco


People also ask

How do I change the default User-Agent string in Internet Explorer?

Microsoft Edge and Internet Explorer To open them, click the settings menu and select “F12 Developer Tools” or just press F12 on your keyboard. The developer tools will open in a separate pane at the bottom of the window. Click the “Emulation” tab and choose a user agent from the “User agent string” box.

What is a browser User-Agent string?

A browser's User-Agent string (UA) helps identify which browser is being used, what version, and on which operating system. When feature detection APIs are not available, use the UA to customize behavior or content to specific browser versions.

Why IE User-Agent is Mozilla?

Because the Netscape browser initially implemented many features not available in other browsers and quickly came to dominate the market, a number of web sites were designed to work, or work fully, only when they detected an appropriate version of Mozilla in the user agent string.


2 Answers

I also faced the same problem in my 2003 windows server with .net framework 4.0 and after a long research i found the below is helpful...

I created App_Browsers folder and put a browser file named as ie.browser and pasted the below browser definition text and it started working

<browsers>
<browser id="IE11" parentID="Mozilla">
<identification>
  <userAgent match="Trident\/7.0; rv:(?'version'(?'major'\d+)(\.(?'minor'\d+)?)(?'letters'\w*))(?'extra'[^)]*)" />
  <userAgent nonMatch="IEMobile" />
</identification>
<capture>
  <userAgent match="Trident/(?'layoutVersion'\d+)" />
</capture>
<capabilities>
  <capability name="browser"              value="IE" />
  <capability name="layoutEngine"         value="Trident" />
  <capability name="layoutEngineVersion"  value="${layoutVersion}" />
  <capability name="extra"                value="${extra}" />
  <capability name="isColor"              value="true" />
  <capability name="letters"              value="${letters}" />
  <capability name="majorversion"         value="${major}" />
  <capability name="minorversion"         value="${minor}" />
  <capability name="screenBitDepth"       value="8" />
  <capability name="type"                 value="IE${major}" />
  <capability name="version"              value="${version}" />
</capabilities>
 </browser>

<!-- Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11,0) like Gecko -->
<browser id="IE110" parentID="IE11">
<identification>
  <capability name="majorversion" match="11" />
</identification>

<capabilities>
  <capability name="ecmascriptversion"    value="3.0" />
  <capability name="jscriptversion"       value="5.6" />
  <capability name="javascript"           value="true" />
  <capability name="javascriptversion"    value="1.5" />
  <capability name="msdomversion"         value="${majorversion}.${minorversion}" />
  <capability name="w3cdomversion"        value="1.0" />
  <capability name="ExchangeOmaSupported" value="true" />
  <capability name="activexcontrols"      value="true" />
  <capability name="backgroundsounds"     value="true" />
  <capability name="cookies"              value="true" />
  <capability name="frames"               value="true" />
  <capability name="javaapplets"          value="true" />
  <capability name="supportsCallback"     value="true" />
  <capability name="supportsFileUpload"   value="true" />
  <capability name="supportsMultilineTextBoxDisplay" value="true" />
  <capability name="supportsMaintainScrollPositionOnPostback" value="true" />
  <capability name="supportsVCard"        value="true" />
  <capability name="supportsXmlHttp"      value="true" />
  <capability name="tables"               value="true" />
  <capability name="supportsAccessKeyAttribute"    value="true" />
  <capability name="tagwriter"            value="System.Web.UI.HtmlTextWriter" />
  <capability name="vbscript"             value="true" />
</capabilities>
  </browser>
</browsers>
like image 116
Subhranshu Avatar answered Oct 04 '22 16:10

Subhranshu


Solved! Website is up just installing Dotnet framework 4.5 on server


Actually I didn't find a way to force programmatically browsers User agent string (this was the original question). But repaired website with 0 code..

Just made lot of tests and on one server I found out that website was working, on other server it wasn't.

The "good server" was a Win2012, and "bad servers" were Win2008. On Win2012 Aspnet 4.5 was running, and on Win2008 it wasn't.

I installed dotnet framework 4.5 on bad servers too, and everything started working!

like image 41
Emanuele Greco Avatar answered Oct 04 '22 17:10

Emanuele Greco