浏览器兼容解决方案

来源:互联网 发布:pptv网络电视官网 编辑:程序博客网 时间:2024/06/02 03:12

WEB开发中,常常遇到浏览器兼容问题。我知道的应对之道,有这么几个,总结如下:

1、css hack
针对不同的浏览器,书写不同的CSS。比如有些类、属性,只有某种浏览器才可以识别,那么写CSS的时候,也把它列上;有多少写多少,如此八面玲珑矣

2、用jquery而不是标准的javascript
jquery在浏览器兼容方面要比写标准JS强

3、app_browser
在asp.net项目里,设置app_browser文件夹,里面设置各种针对性的*.browser文件。不过,我估计这种设置其实只改善asp.net控件的浏览器兼容性

4、利用HTTP响应标头,强制浏览器使用某种兼容模式
也许只对IE系列浏览器起作用吧。不过,浏览器兼容问题,其实往往就是IE浏览器的问题。
这个可以设置IIS,也可以写在web.config里。


关于IIS强制配置启用IE8兼容打开系统
浏览:416|更新:2014-07-04 09:23
最近项目遇到兼容问题,特地查询了相关资料。采用了IIS7自定义标头的方案,经测试,适用可行。下面贴出网上的几种解决方案(使用的是第二种IIS7的)。

Windows Internet Explorer 8 引入了文本兼容性模式,该模式允许 Web 开发人员将浏览器设置为以与旧版本相同的方式呈现它们的页面。可以根据不同的页面或不同的站点指定兼容性模式。

本文档介绍了如何通过在 Internet Information Services (IIS) 中使用自定义标头,对每个站点实现 Windows Internet Explorer 8 支持的一种很常见的文本兼容性模式 — EmulateIE7。

工具/原料
VS2012,SQL2008,IIS,笔记本
方法/步骤
1
指定自定义 HTTP 响应标头
1、使用 IIS Web 服务器为站点定义自定义标头即可为您的网站指定文本模式。若要使 Microsoft IIS 能够定义自定义 HTTP 响应标头以便所有页面自动以 EmulateIE7 模式呈现,您可以使用以下 web.config 示例。(未测)
XML 复制

<?xml version="1.0" encoding="utf-8"?> <configuration>    <system.webServer>       <httpProtocol>          <customHeaders>             <clear />             <add name="X-UA-Compatible" value="IE=EmulateIE7" />          </customHeaders>       </httpProtocol>    </system.webServer> </configuration>

2、您也可以在基于 Windows Server 2008 的计算机上配置 IIS 7 以包含自定义 HTTP 响应标头,步骤如下:(已测)
依次单击“开始”、“管理工具”,然后单击“Internet Information Services (IIS) 管理器”。
在“连接”窗格中,展开服务器的节点,然后展开“站点”。
单击要添加自定义 HTTP 响应标头的网站。
在网站窗格中,双击“IIS”部分中的“HTTP 响应标头”。
在“操作”下,单击“添加”。
在“名称”框中,键入“X-UA-Compatible”。在“值”框中,键入 IE=EmulateIE7。
单击“确定”。
3
3、若要将 IIS 6 及早期版本配置为包含自定义 HTTP 响应标头,请按照下列步骤进行操作:(3部崔总之前有发贴说明该方法,应该可行)
依次单击“开始”、“运行”,然后键入 inetmgr.exe 并单击“确定”。
展开所需服务器,然后展开“网站”。
右键单击所需网站,然后单击“属性”。
单击“HTTP 标头”选项卡。
在“自定义 HTTP 标头”下,单击“添加”。
在“自定义标头名称”框中,键入“X-UA-Compatible”。
在“自定义标头值”框中,键入“IE=EmulateIE7”。
单击“确定”两次。
4
如果使用 Web 服务器指定了默认文本兼容性模式,则可通过在特定的网页中指定其他文本兼容性模式来覆盖该设置。在该网页中指定的模式优先于由服务器指定的模式。
END
注意事项
IIS版本问题和浏览器兼容问题


参考文章:
http://jingyan.baidu.com/article/f3e34a128342a9f5ea653551.html

我又在扯起大旗做虎皮了。浏览器兼容,还解决方案!

事实上,浏览器兼容实属不易,我号称WEB项目开发十几年,其实只是一条经验用了几十年,而不是拥有几十年的经验,井底之蛙,好多东西都不懂!就拿这个浏览器兼容来说,后面这2条,我还是最近才知道的。

0 0