博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
那些年我遇到过的兼容性问题
阅读量:6998 次
发布时间:2019-06-27

本文共 1197 字,大约阅读时间需要 3 分钟。

每次面试时常被问到兼容问题的解决,有时自己遇到过的问题竟然也忘记了是怎么解决的,索性今天把它们记录下来。

1、chrome浏览器下不支持字体小于12像素

通过transform:scale(0.8)这个css3属性来解决

2、一些移动端设备不支持vedio和audio的自动播放

解决方法是先通过用户 touchstart 触碰,触发播放并暂停(音频开始加载,后面用 JS 再操作就没问题了)

以下是代码:

document.addEventListener('touchstart',function() {    document.getElementsByTagName('audio')[0].play();    document.getElementsByTagName('audio')[0].pause();});

3、ios系统下单击事件有300ms的延时

出现这个问题,是由于ios系统下有一个默认的双击放大页面(double tap to zoom)的方案,因此在检测到第一个用户tap事件后,会hold一段时间,若在此时间内又检测到新的tap,则判断为双击事件,反之则判断为单击事件,而这个延迟的时间就是300ms左右。

解决方案:FastClick 是 FT Labs 专门为解决移动端浏览器 300 毫秒点击延迟问题所开发的一个轻量级的库。FastClick的实现原理是在检测到touchend事件的时候,会通过DOM自定义事件立即出发模拟一个click事件,并把浏览器在300ms之后的click事件阻止掉。

4、低版本浏览器不支持getElementByClassName

解决方法是重写一个getByClass()函数:

function getByClass(obj,sClass){    var aResult = [];    if(obj.getElementsByClassName){        aResult = obj.getElementsByClassName(sClass);    }else{        var aEle = obj.getElementsByTagName('*');        for(var i=0;i

5、原生ajax中低版本ie不支持xmlhttprequest对象

解决方法是做一个判断,如果有xmlhttprequest方法,则调用,若没有,则改用ie浏览器的ActiveXobject方法:

if(window.XMLHttpRequest){  var oAjax=window.XMLHttpRequest}else{  var oAjax=new ActiveXObject('Microsoft.XMLHTTP');}

以上就是我能想到的,以后若有新问题,我会继续更新,感谢关注。

转载地址:http://nfdvl.baihongyu.com/

你可能感兴趣的文章
NG-ZORRO 7.0.1 发布,Ant Design 的 Angular 实现
查看>>
scala笔记(三)
查看>>
大数据应用安全研究报告(11家公司实践详解)
查看>>
MES之殇和工业IOT之春
查看>>
阿里云网络漏洞扫描系统AVDS(商业化)发布
查看>>
python splinter 小坑说明
查看>>
控制input输入格式
查看>>
一次XEN启动中的错误捕获
查看>>
esxi嵌套华为Fusioncomputer安装VRM几个关键步骤。
查看>>
DNS设置引起的登录延迟
查看>>
saltstack之SLS文件
查看>>
JAVA构建缓存
查看>>
解决:Loading kernel module CAP_SYS_MODULE CAP_NET_ADMIN alias netdev-eth0 instead
查看>>
wav2letter-基于深度学习的语音识别
查看>>
Java class.forname()和newinstance
查看>>
学习计划书
查看>>
[iOS Animation]-CALayer 视觉效果
查看>>
wps的ppt放映时不能完全全屏的解决方法
查看>>
我的友情链接
查看>>
本地存储
查看>>