`

前端开发手机内置浏览器(含js函数)兼容性汇总之那些踩过的坑

阅读更多

这里会汇总一些移动设备(手机)的内置浏览器兼容性的js函数问题:

 

1、for... of... 坑爹指数:★★★★

      for-of loop是ES6的语法,比较新,导致部分Android手机不支持,例如【华为】

      当一个React的项目在多数手机正常运行时,这个时候有些手机就是不支持这个函数。原因是由于内置浏览器的版本过低,不支持一些新的JS函数。

     解决:使用 原生for循环或forEach函数代替。

     ps 事现日期:2016-06-23


 

2、str.startWith 坑爹指数:★★★★

      这个也是js一些新的特性,当你在享受js操作字符串便利的同时,也承担着多数内置浏览器不兼容的风险,例如【华为】【低版本的iPhone】

       解决:使用字符串的 indexOf() 函数替代

       ps 事现日期:2016-04-10



3、str.search 坑爹指数:★★★★

      这个也是js一些新的特性,当你在享受js操作字符串便利的同时,也承担着多数内置浏览器不兼容的风险,例如【华为】【低版本的iPhone】

       解决:使用字符串的 indexOf() 函数替代

       ps 事现日期:2015-04-08


 

4、window.open 坑爹指数:★★★

      由于它打开的页面是popup类型,导致部分手机浏览器会阻挡并拦截弹窗,根本弹不出来,接下去的步骤就无法完成了。

       解决:使用字符串的 window.location.href 函数替代

       ps 事现日期:2015-10-10



 

5、ES2015 `` 语法 坑爹指数:★★★

      这是ES6的新语法,支持字符串占位、换行拼接,很是好用,实际使用中,Android绝大多数浏览器不支持该函数,iPhone支持该语法。

      `${today.getFullYear()}-${today.getMonth() + 1}-${today.getDate()} ${hour}:00:00`

       解决:使用字符串的  ‘ + ’ 函数替代

       today.getFullYear()+'-'+(today.getMonth() + 1)+'-'+today.getDate()+' '+hour+':00:00';


       ps 事现日期:2016-03-24




6、[...Array(size).keys()] 坑爹指数:★★

      这个是ES6的函数,在React项目中即使通过Babel编译,依旧会有部分低版本内核的手机浏览器不支持,例如华为等,导致js操作被阻断,接下去的步骤就无法完成了。

       解决:使用 Array.apply(null, {length: size}) 函数替代

       ps 事现日期:2016-04-15

 

 


7、ES6 数据解构之数组解构 坑爹指数:★★★

      const [touchObj] = e.touches; 数据解构在Es6中很是常见,可是Android和Ios都不支持,只好放弃。

       解决:使用原始获取数组下标 const touchObj = e.touches[0]; 函数替代

       ps 事现日期:2016-08-10

 


8、IOS不支持js onBlur事件 坑爹指数:★★★

      <input onFocus="alert('Support')" onBlur="alert('Not support Yet')">

       解决:官方已知未解决Bug

       参考: https://jira.appcelerator.org/browse/TIMOB-17343

https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html

       解决思路:在整个可点击区域添加浮层,点击后模拟触发onBlur事件。


       ps 事现日期:2016-10-20

 


9、Android不支持css scale缩放动画 坑爹指数:★★★★★

      

@keyframes scaleImg {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.2);
  }
}

 

       解决:官方已知未解决Bug

       参考:https://code.google.com/p/android/issues/detail?id=12451

       解决思路:1)不使用动画 2)使用gif替换

/*Method 3*/
@-webkit-keyframes scaleImg {
  from {
    -webkit-transform: scale(1);
  }
  to {
    -webkit-transform: scale(1.2);
  }
}

 


       ps 事现日期:2017-05-10

 


10、ES6 Array.prototype.find() 坑爹指数:★★★

      es6新增的数组find函数,可根据需求搜索子项,Android6以下版本部分手机不支持。

       解决:使用数组的 filter 函数替代,find返回子项,记得filter的时候取数组的index=0.


       ps 事现日期:2017-03-16


 


11、ES6 Promise() 坑爹指数:★★★★

      es6新增的Promise函数,主要用来解决js异步加载的问题,iPhone很积极的已经更新,但是低版本的iPhone和部分低版本的Android手机浏览器内核还不支持该函数,导致处理报错。

       解决:复写Promise函数或使用bluebird.js兼容Promise函数,也可以使用babel转换代码,亦可以使用回调函数替代Promise写法.


       ps 事现日期:2017-06-20

 

 

关于更多兼容性问题不断更新中。

 

若遇到其他不兼容的问题,请评论告诉我,我来整理,让更多坑里的人爬起来。


更多实例应用扫码体验:

分享到:
评论

相关推荐

    浏览器函数兼容

    案例:indexOf 在ECMA-262 标准 的第5版中被加入,但并非所有的浏览器都支持该方法。你可以在编写scripts时,在其开头使用以下代码,它能够允许你在没有本地支持的情况下使用indexOf方法。该算法符合ECMA-262第5版...

    易语言千里模块更改语言内置浏览器IE版本

    有时,为了兼容性或者性能需求,我们需要调整内置浏览器使用的IE渲染引擎版本。传统上,这可能需要复杂的设置和代码调整,但易语言通过千里模块提供了一种简便的方法来实现这一目标。 首先,我们需要了解千里模块...

    css和js的浏览器兼容问题汇总

    本文主要探讨CSS和JavaScript在IE(Internet Explorer)和其他非IE内核浏览器如Firefox、Chrome、Opera中的兼容性问题。 首先,IE浏览器虽然市场份额较大,但其各个版本(如IE6、IE7、IE8)对CSS和JavaScript的支持...

    JavaScript前端开发案例教程-源代码.rar

    JavaScript,作为全球最广泛使用的编程语言之一,是前端开发的核心技术。这个名为"JavaScript前端开发案例教程-源代码.rar"的压缩包文件提供了一系列实践案例,帮助开发者深入理解和掌握JavaScript在网页开发中的...

    js开发时钟(浏览器兼容)

    这篇博客“js开发时钟(浏览器兼容)”可能详细介绍了如何利用JavaScript在各种浏览器上实现一个兼容性良好的时钟。 首先,让我们探讨一下JavaScript中的时间处理。JavaScript内置了`Date`对象,它提供了获取当前日期...

    前端开发必备JavaScript(含源码课件笔记总结)

    JavaScript是前端开发的核心技术之一,它为网页添加交互性,使静态内容变得生动起来。这份“前端开发必备JavaScript(含源码课件笔记总结)”的资源集合是前端开发者不可多得的学习材料,包含了丰富的知识内容,旨在...

    前端开发简历模板-前端开发工程师-1年.doc

    -浏览器兼容性 -ajax -node.js -ES6新特性 - JavaScript性能优化 -周期虚拟DOM树 -组件化开发 7. 项目经验: -东游西学项目 -LittleAngel项目 -故里电影框项目 -萝卜小旅项目 -熊猫药站项目 8. 教育...

    Firefox浏览器兼容JS脚本供参考

    在开发Web应用时,浏览器兼容性是一个常见的挑战,特别是JavaScript脚本在不同的浏览器上可能会有不同的行为。本文将详细解析在Firefox浏览器中实现JS脚本兼容的一些关键点,以确保代码在Firefox和其他浏览器上的...

    C# 浏览器完整版开发,支持视频、JS交互

    采用谷歌内核CefSharp进行开发,主要是为了实现JS交互,实现前端JS调用原生能力,如:相机、VLC视频能力(主要播放流视频)等。 实现主要功能: 浏览器标签、HTML页面能播放视频、下载记录、JS交互(能调用原生相机...

    JavaScript内置函数与内置对象.doc

    JavaScript内置函数与内置对象.doc

    前端跨界开发指南:JavaScript工具库原理解析与实战.docx

    跨浏览器兼容性问题也是开发者需要面对的挑战,不同的浏览器对JavaScript的支持程度不一,工具库需要确保在主流浏览器上的稳定运行。 语言层面,JavaScript的动态类型和全局变量可能导致代码错误和难以调试的问题。...

    tools.js前端开发函数工具包

    前端开发中常常会遇见ie版本兼容性问题,为了统一解决在开发中遇见的各种元素获取问题和一些样式获取问题,封装函数工具包,使用时调用工具包。

    浏览器兼容 谷歌IE8.js,IE9.js下载

    在IT行业中,浏览器兼容性是一项重要的考虑因素,尤其是在前端开发中。不同的浏览器可能对Web标准的支持程度不同,导致代码在不同浏览器上运行效果各异。谷歌(Google)为了解决这个问题,推出了针对旧版Internet ...

    HTML5非常方便的前端开发工具

    此外,其内置的浏览器兼容性检查也能帮助开发者确保代码在不同浏览器上都能正常运行。 此外,HBuilder集成了资源管理、项目管理、版本控制、调试工具等多种功能,使得前端开发工作更为系统化。例如,它支持Git版本...

    兼容主流浏览器的js旋转代码

    这个"兼容主流浏览器的js旋转代码"旨在提供一个解决方案,确保在各种浏览器环境下都能正常工作。让我们深入探讨一下如何使用JavaScript来实现这样的功能,以及兼容性问题的解决策略。 首先,我们需要了解CSS3的`...

    JavaScript前端开发程序设计教程.rar

    JavaScript,简称JS,是一种广泛应用于现代Web开发的轻量级、解释型编程语言,它以其易学易用性,灵活性和强大的功能深受开发者喜爱。在前端开发领域,JavaScript扮演着至关重要的角色,使得网页不仅限于静态展示,...

    1500个前端开发常用JavaScript特效

    JavaScript,作为前端开发的核心语言,拥有丰富的功能和广泛的应用,为网页添加动态效果、交互性和数据处理能力。"1500个前端开发常用JavaScript特效"这个资源集合,显然是一个全面展示JavaScript在网页特效实现方面...

    前端开发Jquery

    它以其简洁、直观的API和广泛的浏览器兼容性,成为了前端开发者不可或缺的工具之一。这个“前端开发jQuery”的视频教程正是针对这一主题,旨在帮助初学者和有一定基础的开发者快速掌握jQuery的核心概念和技术。 ###...

    前端开发笔试题汇总

    在前端开发领域,笔试题是评估开发者技能的重要方式,尤其对于腾讯、网易、去哪儿等知名公司来说,这些公司的笔试环节通常包含了一系列具有挑战性的题目,旨在测试候选人的基础理论知识、编程能力、问题解决和实际...

    javascript中日期函数new Date()的浏览器兼容性问题

    JavaScript是一种广泛使用的前端开发脚本语言,它提供了一系列的内置对象和函数用于处理日期和时间。在JavaScript中创建日期对象的常用方式是使用new Date()函数。new Date()函数可以接收不同的参数来创建一个日期...

Global site tag (gtag.js) - Google Analytics