场景
我有一个用.net(框架1.1)开发的非常旧的网站。该网站在 Internet Explorer 10/11 中存在多个问题,可以使用兼容性视图进行修复。
问题
问题是框架 1.1 无法将 Internet Explorer 10/11 识别为高级功能浏览器,因此当使用 Internet Explorer 10/11 的用户访问该网站时,许多功能(例如 javascript 代码)将被禁用。
Microsoft 发布了补丁来修复 .net Framework 版本 >=2.0 的此问题,但不适用于 Framework 1.1。
我已经尝试过的
-
我尝试在 web.config 中强制使用 IE7 兼容模式,或者在 IIS 中添加 HTTP 标头,或者直接在 html 页面中添加:
<meta http-equiv="X-UA-Compatible" content="IE=7" />
但这不是一个有效的解决方案,因为由于 1.1 框架问题,javascript 代码仍然丢失。
我找到的唯一可行的解决方案是在浏览器中手动设置兼容性视图,但我的一些客户在激活兼容性视图时遇到问题,因为他们对电脑没有信心。
我的两分钱
我知道最好的解决方案可能是将整个项目转换为较新版本的框架(> = 2.0),不幸的是该项目很大并且其转换将非常复杂(该解决方案包括许多其他项目,较旧的项目)经典的 ASP 部分、Crystal Reports 报表等等...)
真正的问题
有没有一种解决方案不需要最终用户进行项目转换或手动操作?
编辑 web.config 文件并在<system.web>
部分添加
<browserCaps>
<case match="IE[ /](?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))">
browser=IE
version=${version}
majorversion=${major}
minorversion=${minor}
frames=true
tables=true
cookies=true
javascript=true
javaapplets=true
activexcontrols=true
ecmascriptversion=1.5
vbscript=true
backgroundsounds=true
isMobileDevice="true"
<filter match="[4-9]" with="${major}">
ecmascriptversion=1.3
css1=true
css2=true
xml=true
<filter match="[5-9]" with="${major}">
w3cdomversion=1.0
</filter>
</filter>
<filter match="^b" with="${letters}">
beta=true
</filter>
</case></browserCaps>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)