这里会汇总一些移动设备(手机)的内置浏览器兼容性的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-103、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
关于更多兼容性问题不断更新中。
若遇到其他不兼容的问题,请评论告诉我,我来整理,让更多坑里的人爬起来。
相关推荐
在前端开发过程中,浏览器兼容性问题常常困扰着开发者。不同的浏览器对HTML、CSS、JavaScript的解析和执行方式存在差异,导致同一代码在不同浏览器中显示或运行效果不一致。本篇将详细介绍如何处理IE、Firefox(FF)...
案例:indexOf 在ECMA-262 标准 的第5版中被加入,但并非所有的浏览器都支持该方法。你可以在编写scripts时,在其开头使用以下代码,它能够允许你在没有本地支持的情况下使用indexOf方法。该算法符合ECMA-262第5版...
有时,为了兼容性或者性能需求,我们需要调整内置浏览器使用的IE渲染引擎版本。传统上,这可能需要复杂的设置和代码调整,但易语言通过千里模块提供了一种简便的方法来实现这一目标。 首先,我们需要了解千里模块...
JavaScript,作为全球最广泛使用的编程语言之一,是前端开发的核心技术。这个名为"JavaScript前端开发案例教程-源代码.rar"的压缩包文件提供了一系列实践案例,帮助开发者深入理解和掌握JavaScript在网页开发中的...
这篇博客“js开发时钟(浏览器兼容)”可能详细介绍了如何利用JavaScript在各种浏览器上实现一个兼容性良好的时钟。 首先,让我们探讨一下JavaScript中的时间处理。JavaScript内置了`Date`对象,它提供了获取当前日期...
JavaScript是前端开发的核心技术之一,它为网页添加交互性,使静态内容变得生动起来。这份“前端开发必备JavaScript(含源码课件笔记总结)”的资源集合是前端开发者不可多得的学习材料,包含了丰富的知识内容,旨在...
-浏览器兼容性 -ajax -node.js -ES6新特性 - JavaScript性能优化 -周期虚拟DOM树 -组件化开发 7. 项目经验: -东游西学项目 -LittleAngel项目 -故里电影框项目 -萝卜小旅项目 -熊猫药站项目 8. 教育...
采用谷歌内核CefSharp进行开发,主要是为了实现JS交互,实现前端JS调用原生能力,如:相机、VLC视频能力(主要播放流视频)等。 实现主要功能: 浏览器标签、HTML页面能播放视频、下载记录、JS交互(能调用原生相机...
JavaScript内置函数与内置对象.doc
JavaScript 和 jQuery 是现代 Web 前端开发中的两个核心工具,它们共同为创建动态、交互式的网页提供了强大的功能。在本教程中,我们将深入探讨如何将这两种技术与 HTML 和 CSS 结合,以实现高效的网页设计。 ...
在IT行业中,JavaScript(JS)是一种广泛使用的编程语言,尤其在网络前端开发中扮演着至关重要的角色。"兼容各浏览器的JS点击复制2018年"这个主题涉及到的是如何使用JavaScript实现一个功能,使得用户可以通过点击...
在前端开发中,由于各种浏览器对JavaScript的支持程度和实现细节各不相同,常常会导致一些兼容性问题。这些问题如果不妥善处理,可能会影响到页面的正常显示和功能的正常使用。本文将围绕JavaScript中的多浏览器兼容...
跨浏览器兼容性问题也是开发者需要面对的挑战,不同的浏览器对JavaScript的支持程度不一,工具库需要确保在主流浏览器上的稳定运行。 语言层面,JavaScript的动态类型和全局变量可能导致代码错误和难以调试的问题。...
3. **JavaScript**:JavaScript是前端的核心语言,虽然ECMAScript标准为JS设定了基础,但不同浏览器的JavaScript引擎对新特性的实现速度不一致。比如,ES6的一些特性,如箭头函数、模板字符串和Promise,在旧版IE中...
9. **浏览器兼容性**:处理不同浏览器之间的差异,使用polyfill或Babel转译ES6+新特性。 通过解答这些样题,学员不仅可以加深对Web前端技术的理解,还能提升解决问题的实际能力,为1+x Web前端开发认证考试做好充分...
在IT行业中,浏览器兼容性是一项重要的考虑因素,尤其是在前端开发中。不同的浏览器可能对Web标准的支持程度不同,导致代码在不同浏览器上运行效果各异。谷歌(Google)为了解决这个问题,推出了针对旧版Internet ...
PDF.js是Mozilla开发的一个开源JavaScript库,用于在Web浏览器中渲染PDF文档,无需任何外部插件或Flash支持。这个库的出现使得开发者可以方便地在手机端展示PDF内容,极大地提升了用户体验,因为用户不再需要安装...
【图片浏览器——JS】是一种基于JavaScript技术实现的用于展示和浏览图片的应用程序。在网页设计中,图片浏览器常被用来创建交互式的图片展示效果,如幻灯片展示、图片轮播等,为用户提供友好的浏览体验。在这个项目...
JavaScript,简称JS,是一种广泛应用于现代Web开发的轻量级、解释型编程语言,它以其易学易用性,灵活性和强大的功能深受开发者喜爱。在前端开发领域,JavaScript扮演着至关重要的角色,使得网页不仅限于静态展示,...
JavaScript,作为前端开发的核心语言,拥有丰富的功能和广泛的应用,为网页添加动态效果、交互性和数据处理能力。"1500个前端开发常用JavaScript特效"这个资源集合,显然是一个全面展示JavaScript在网页特效实现方面...