IE 11 compatibility for ASP.NET Framework
With the release of IE 11 there has been compatibility issues with .NET Framework 4.0 and likewise every developer it has been a nightmare for all the sites that were not catering for this change/upgrade.
Issue:
Internet Explorer version 11 (IE 11) has thrown many sites either on javascript variables or CSS styling with errors such as "
Internet Explorer version 11 (IE 11) has thrown many sites either on javascript variables or CSS styling with errors such as "
“The value of the property '' is null or undefined, not a Function object”
Cause:
Internet Explorer 11 does not recognize .NET Framework properly.
Internet Explorer 11 does not recognize .NET Framework properly.
Resolution:
This issue can be fixed by adding "App_Browsers" folder into your website or web application project.
If App_Browsers folder does not exist in your current solution/website/project, then follow these steps:
1. Right Click on your project/website name
2. Go to Add
3. Go to "Add ASP.NET folder
4. Select "App_Browsers"
Otherwise:
1. Right click on "App_Browsers" folder
2. Add New Item
3. Select browser file, name it ie11.browser
4. Copy the following code(red text) into ie11.browser file
CODE TO COPY:
<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>
5. Save the file and build the project(recommended but not mandatory, but on saving the file all your sessions will be disposed)
6. Re-test your project.
I hope this would help many developers and save the tiring time of re-search.
Your feedback will be much appreciated.
Cheers