js解决按需引入文件(IOS11引入fastclick有bug)
2017-10-12 15:58
567 查看
首先,为什么会提出这个问题
在用jquery-weui开发的时候,当时还没有IOS11,所以引入FastClick完全没出现过问题,一两个月后就有客户反馈说(此时是加入fastclick的),(而且已经进入后台开发了)点击tab切换有问题(忘了这个问题描述是啥了),然后(后台问了一些细节,)花了很久才知道是IOS11的系统已经修复了点击延迟几百毫秒的问题,所以提出“ IOS11 已经解决了点击延迟的问题,引入 fastclick 反而会导致页面在 IOS 下面点击失灵;IOS 11 以下还需要引入 fastclick ,11 开始不用的问题”,然后让前端(=。=也就是我)解决一下。
参考
userAgent判断 IOS 版本:https://zhidao.baidu.com/question/244020584171669444.html
JS判断是否有js、css文件的引入方法:http://www.bcty365.com/content-69-5565-1.html
解决
在<head>书写
fastclick.js文件不用说
fastclick_attach.js文件是这样的↓
总结
还从来没解决过这种问题,都忘了document.createElement(“script”)(虽然知道这个方法);这样来按需引入script文件的。
在用jquery-weui开发的时候,当时还没有IOS11,所以引入FastClick完全没出现过问题,一两个月后就有客户反馈说(此时是加入fastclick的),(而且已经进入后台开发了)点击tab切换有问题(忘了这个问题描述是啥了),然后(后台问了一些细节,)花了很久才知道是IOS11的系统已经修复了点击延迟几百毫秒的问题,所以提出“ IOS11 已经解决了点击延迟的问题,引入 fastclick 反而会导致页面在 IOS 下面点击失灵;IOS 11 以下还需要引入 fastclick ,11 开始不用的问题”,然后让前端(=。=也就是我)解决一下。
参考
userAgent判断 IOS 版本:https://zhidao.baidu.com/question/244020584171669444.html
JS判断是否有js、css文件的引入方法:http://www.bcty365.com/content-69-5565-1.html
解决
在<head>书写
<!-- 判断ios版本 --> <script> var str= navigator.userAgent.toLowerCase(); var ver=str.match(/cpu iphone os (.*?) like mac os/); if(!ver){//非IOS系统 // 引入fastclick文件 includeFastclickJsFile(); }else{ console.log("你当前的Ios系统版本为:"+ver[1].replace(/_/g,".")); if(parseInt(ver[1])>=11){ //不必引入fastclick文件 }else{ // 引入fastclick文件 includeFastclickJsFile(); } } function includeFastclickJsFile(){ var oHead = document.getElementsByTagName('HEAD').item(0); let fastclick= document.createElement("script"); let fastclickAttach = document.createElement("script"); fastclick.type = "text/javascript"; fastclick.src="../static/jq_weui/1.0.0/lib/fastclick.js"; fastclickAttach.type = "text/javascript"; fastclickAttach.src="../static/lib/fastClick/fastclick_attach.js"; oHead.appendChild(fastclick); oHead.appendChild(fastclickAttach); } </script>
fastclick.js文件不用说
fastclick_attach.js文件是这样的↓
$(function() { FastClick.attach(document.body); });
总结
还从来没解决过这种问题,都忘了document.createElement(“script”)(虽然知道这个方法);这样来按需引入script文件的。
相关文章推荐
- 学习vue-cli时需要引入外部js库文件(如jquery)的问题,百度后解决了,再次备忘一下
- 解决“引入JS文件IE6报错”的问题
- 解决ext与ueditor同时使用,引入js文件冲突问题
- 解决“引入JS文件IE6报错”的问题
- 解决“引入同一个JS文件IE6报错”的问题
- eclipse中引入的js文件报错的解决办法
- Jsp页面无法引入js文件 解决办法
- 在php模版文件和html文件中引入js,css文件错误解决
- fastclick.js - 解决移动端 click 事件响应慢和点透问题
- myEclipse中引入各类js文件时验证错误解决办法
- 外部引入js文件不生效解决方法
- ajaxfileupload.js目前功能最全版本(多文件、异常处理等),顺便解决只能上传一次的BUG(非live绑定)
- libMobClickLibrary.a文件引入Xcode5.0工程时候造成错误的问题解决
- Eclipse/Myeclipse中引入.Js文件后出现 missing semicolon错误的解决。
- spring mvc不能引入js等静态文件的解决办法
- 以指定的编码方式引入js文件解决js乱码
- spring mvc不能引入js等静态文件的解决办法
- fastclick.js解决移动端(ipad)点击事件反应慢问题
- jsp中引入js文件出现乱码的解决办法
- Vue.js项目引入less文件报错解决