Internet Explorer 10/11 和旧的 .net Framework 1.1 网站的兼容性问题

2024-02-27

场景

我有一个用.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。

我已经尝试过的

  1. 我尝试在 web.config 中强制使用 IE7 兼容模式,或者在 IIS 中添加 HTTP 标头,或者直接在 html 页面中添加:

    <meta http-equiv="X-UA-Compatible" content="IE=7" />
    

    但这不是一个有效的解决方案,因为由于 1.1 框架问题,javascript 代码仍然丢失。

  2. 我找到的唯一可行的解​​决方案是在浏览器中手动设置兼容性视图,但我的一些客户在激活兼容性视图时遇到问题,因为他们对电脑没有信心。

我的两分钱

我知道最好的解决方案可能是将整个项目转换为较新版本的框架(> = 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(使用前将#替换为@)

Internet Explorer 10/11 和旧的 .net Framework 1.1 网站的兼容性问题 的相关文章

随机推荐