前端页面开发兼容性建议

1、基础准备

(1)页面入口引入较高版本的jquery,推荐使用jquery-1.12.4,或直接引入现在BS页面里已有的jquery-1.8.2.js(其实是1.11.1版本)
①下载地址:https://cdn.bootcdn.net/ajax/libs/jquery/1.12.4/jquery.js
(可用于开发,方便断点调试)
②下载地址(压缩版): https://cdn.bootcdn.net/ajax/libs/jquery/1.12.4/jquery.min.js
③参考文档(推荐):https://jquery.cuishifeng.cn
④参考文档(官方): https://www.jquery123.com

(2)引入jquery后,在页面开发前,通过 . f n . j q u e r y 确 认 引 入 的 j q u e r y 版 本 是 否 正 确 , 低 版 本 的 j q u e r y 中 存 在 部 分 A P I 尚 未 实 现 的 现 象 , 如 1.3.2 版 本 的 j q 未 实 现 .fn.jquery确认引入的jquery版本是否正确,低版本的jquery中存在部分API尚未实现的现象,如1.3.2版本的jq未实现 .fn.jqueryjqueryjqueryAPI1.3.2jq.parseXML()
(当前BS页面中部分页面没有jq、部分页面jq版本为1.3.2、部分页面为1.11.1)
在这里插入图片描述

(3)使用jquery的理由
①IE实现的JS标准与现代浏览器(chrome、firefox等)实现的JS标准存在较大差异,且IE的JS标准文档偏少,调整兼容性难度较大。
②jquery在实现时已最大程度上进行了跨浏览器兼容。

2、通用建议

(1)DOM对象操作
使用 变量声明 -> 通过$(选择器) 操作来获取目标DOM -> 变量赋值 -> 变量操作 来替代IE中常用的
直接使用id属性作为变量名获取DOM -> 变量操作

Tip1:$(选择器)获取的对象为jquery封装过的DOM对象,如需原生DOM对象,可通过下标访问获取(基本不使用,原生DOM对象还得自己去考虑兼容性)。
Tip2:规范地获取DOM对象,能避免IE的一些默认行为导致的,能获取到DOM对象的假象,如IE使用iframe的id作为变量获取到的是对应iframe的contentWindow属性,而在chrome中获取到的是对应iframe的DOM对象,导致后续操作在chrome上报错。

(2)样式设置
①注意html内嵌套结构的正确性
1)标签正确闭合.
2)特定标签内所包含的标签的正确性(主要是表格、列表相关的标签),如

a.tr标签内只能包含th/td标签
b.ul/ol标签内只能包含li标签

②注意元素的默认样式
1)减少缺省值的使用,浏览器在填写缺省值时可能会存在差异,如设置absolute布局时,top/right/bottom/left四个属性尽可能填写。
2)自带布局规则的元素的默认样式尽量保持,控制隐藏/显示时尽量恢复成原值,如tr/td等table相关元素的display属性的值为特殊值,若设置为block,则会导致rowspan、colspan等table相关属性失效。
(3)事件处理函数绑定/解绑
使用 $(选择器).on(事件名, 处理函数) / $(选择器).off(事件名, 处理函数) 来替代 原生JS中的

elem.attachEvent(‘on’ + 事件名, 处理函数) / elem.detachEvent(‘on’ + 事件名, 	处理函数) — IE
elem.addEventListener(事件名, 处理函数) / elem.addEventListener(事件名,  处理函数) — chrome

(4)判断是否为同一个元素
使用 $(选择器)[下标] == 待判断元素 来替代IE中使用的 elem.uniqueID == 待判断元素.uniqueID
原因:uniqueID属性是IE独有的,在其他浏览器会导致undefined == undefined, 使得判断始终为true。

(5)XML数据转换
使用$.parseXML(XML格式字符串) 来替代IE中使用的ActiveXObject 对象
原因:ActiveXObject对象是IE独有的

(6)使用DOM来进行XML对象操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Web前端开发中,浏览器兼容性是一个常见的挑战。不同的浏览器实现了不同的标准和规范,因此相同的代码在不同的浏览器上可能会有不同的表现,甚至无法正常工作。 为了解决浏览器兼容性问题,前端开发者需要注意不同浏览器的差异性,并采用相应的解决方法来保证页面在各种浏览器中能够正确地展示和运行。以下是一些常见的解决方法和工具: 1. 使用polyfill库:Polyfill是一种JavaScript代码,用于在旧版本浏览器中实现新的Web标准和API。通过使用polyfill库,开发者可以在不支持某些功能的浏览器上模拟这些功能,从而提高兼容性。 2. 使用CSS hack:CSS hack是一种通过特定的CSS代码来针对不同浏览器的差异性进行样式修复的方法。通过使用不同的CSS hack,开发者可以针对不同浏览器应用不同的样式规则,从而解决兼容性问题。 3. 使用媒体查询:媒体查询是一种CSS技术,用于根据设备的特性(如屏幕宽度、设备类型等)来应用不同的样式规则。通过使用媒体查询,开发者可以根据不同设备的特性来调整页面的布局和样式,从而提高兼容性。 4. 使用特定的前缀:某些CSS属性和JavaScript API在不同浏览器中可能存在不同的前缀。通过在代码中添加特定的前缀,开发者可以确保这些属性和API在不同浏览器中正常工作。 5. 使用兼容性检测工具:有许多兼容性检测工具可以帮助开发者发现和解决兼容性问题。例如,Can I use是一个广泛使用的兼容性查询工具,可以查看不同浏览器对特定功能的支持情况。另外,还有一些在线工具和浏览器插件可以帮助开发者进行兼容性测试和调试。 总之,通过注意浏览器的差异性,并采用相应的解决方法和工具,开发者可以有效地解决Web前端浏览器兼容性问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值