概述
- 本文主要记录在开发过程(政府项目)中出现浏览器兼容问题时的处理思路,火狐浏览器版本45.9.0
- 持续更新....
问题的表现形式
UI样式不同
- 浏览器兼容问题一般表现在于高版本和低版本的UI样式不同,这一般是css语法解析结果不同,这部分差异比较小。但如果CSS语法错误也不会影响CSS的语法解析,仅会跳过该行CSS代码。
- 这类问题注意下CSS语法就行。如“超出某个宽度范围显示省略号”这个UI样式在chrome中可以设置两行或三行显示省略号,但在火狐中仅支持一行。chrome中能滚动条样式的自定义空间与火狐浏览器相比更大。
UI样式滚地条处理
- 滚动条样式如果有要求用插件处理,因为浏览器厂商不同,对滚动条自定义的操作范围也不同
UI样式之一屏展示
- 有时会遇到UI样式一屏展示,也就是一页显示不产生滚动条的UI需求。一种方式是响应式,一种是自适应。但自适应的结果是某个UI块的宽高和UI稿不同,这是因为不同浏览器的默认可视区高度不同,但F11全屏后是一样的。 这种情况建议和UI设计师沟通,达成共识后在做兼容或取舍
chrome浏览器
火狐浏览器
页面加载不出
- 定位问题大方向: 在高版本浏览器或chrome浏览器中能加载页面,但在低版本火狐浏览器中加载不出。这类问题通常是js语法解析有问题。因为CSS代码错误只是不执行,并不会影响编译;HTML语法错误高版本浏览器页面也会加载不出。
- 定位具体位置:确定问题方向后落实到具体细节。
-
首先可以注释 ,然后仅保留mian.js中最原始的代码(创建项目时的原始代码),注释其余代码。如果能加载项目,在一步步放开main.JS中的代码。如果还是加载不出,那可能是项目本身缺少某配置文件
-
main.js文件排查完之后再放开 , 根据路由加载排查具体文件。也是注释再放开的方法。如果定位到是引入插件引起的页面加载不出,那兴许是该插件版本高的原因。因为目前最新的插件大部分都是TS语法写的,低版本浏览器运行该插件的编译包中不友好(TS的编译和运行原理看TS文档)。一种方式是重新编译该插件,一种是版本降级
-
插件版本降级:一种方式GitHub中找,一种在npm中找。国内建议在npm中找该插件的包,再找历史发布版本,最后安装该插件的低版本
-