解决easyui在ie不兼容的方法

这次给大家带来解决easyui在ie不兼容的方法,解决easyui在ie不兼容的注意事项有哪些,下面就是实战案例,一起来看一下。

前几天项目进入最后准备上线阶段,测试突然发现使用easyui的datetimebox插件获取的时间在ie的时候无法获取到比当前时间还往后的时间,当时是这么写的:

$(selector).datetimebox({formatter : function(date) {var y = date.getFullYear();var m = date.getMonth() + 1;var d = date.getDate();var h = date.getHours(); //获取当前小时数(0-23)var mi = date.getMinutes(); //获取当前分钟数(0-59)var s = date.getSeconds(); var result = y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d)+ " " + (h < 10 ? '0' + h : h)+ ":" + (mi < 10 ? '0' + mi : mi);//console.log(result+"--第127行");if(second==false){} else {result += ":" + (s < 10 ? '0' + s : s);}return result;},  parser : function(s) {var t = Date.parse(s);if (!isNaN(t)) {return new Date(t);} else {return new Date();}}});

登录后复制

测试谷歌浏览器等主流浏览器都没有问题,可以把一开始回显的时间显示出来,并可以选择时间,但是到ie的时候,却发现选择不了时间了,而且回显的日期也不对,老是当前的时间。调试了好久,才发现是ie浏览器不支持js的parse()方法。parse()方法是把日期解析转换成该日期的毫秒数。

formatter是格式化日期的格式。而parser是把解析你格式化的日期,具体写法看我截的API图吧:

解决easyui在ie不兼容的方法

因为parse在ie中无法使用~导致在ie下无法解析显示出格式化过后日期的时间。下面是我自己改过的代码:

$(selector).datetimebox(   {   formatter : function(date) {    var y = date.getFullYear();  var m = date.getMonth()+1;  var d = date.getDate();  var h = date.getHours();  var min = date.getMinutes();  return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d)+' '+(h<10?('0'+h):h)+':'+min;   },   parser : function(s) {  var ss = (s.split(" "));  var ymd = ss[0].split("-");  var hms = ss[1].split(":");  //console.log(ymd+" "+hms);  var y = parseInt(ymd[0],10);  var m = parseInt(ymd[1],10);  var d = parseInt(ymd[2],10);  var h = parseInt(hms[0],10);  var min = parseInt(hms[1],10);  if (!isNaN(y) && !isNaN(m) && !isNaN(d) && !isNaN(h) && !isNaN(min)){  return new Date(y,m-1,d,h,min);  } else {  return new Date();  }   }   });

登录后复制

formatter格式化的日期是xxxx-xx-xx xx:x。所以在下面parser解析时先通过日期和时间之间的空格,把他俩分割开来。ss[0]==xxxx-xx-xx,ss[1]==xx:xx。这样的话再通过-和:的分割,把他们分割成一个个数字,这样的话直接写入new Date()的参数里就可以返回正确的日期格式了~~好了,经测试完美兼容ie这个坑爹的浏览器。

今天在使用时突然发现这个方法的一个bug,那就是如何一开始datetime时间框没有数据是,会报split错误,所以今天修改了下,加了个为空判断:

if(s==""){  return new Date();  }else{  //alert(s);  var ss = (s.split(" "));  var ymd = ss[0].split("-");  var hms = ss[1].split(":");  //console.log(ymd+" "+hms);  var y = parseInt(ymd[0],10);  var m = parseInt(ymd[1],10);  var d = parseInt(ymd[2],10);  var h = parseInt(hms[0],10);  var min = parseInt(hms[1],10);  if (!isNaN(y) && !isNaN(m) && !isNaN(d) && !isNaN(h) && !isNaN(min)){   return new Date(y,m-1,d,h,min);  } else {   return new Date();  }  }

登录后复制

在这要注意s是个字符串类型~所以不能用s==null来做判断条件~

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

jQuery中如何实现toggle方法

jQuery+JSONP跨域需要怎样实现

jquery中select组件的使用方法

如何实现jquery回车登录效果

以上就是解决easyui在ie不兼容的方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2782875.html

(0)
上一篇 2025年3月8日 16:40:09
下一篇 2025年2月28日 21:14:39

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 细说session和cookie会话控制

    本篇文章讲述了session和cookie会话控制,大家对session和cookie会话控制不了解的话或者对session和cookie会话控制感兴趣的话那么我们就一起来看看本篇文章吧, 好了废话少说进入正题吧 对于一个前端开发者,coo…

    2025年3月8日 编程技术
    200
  • jQuery EasyUI选项卡面板的tabs使用

    这次给大家带来jQuery EasyUI选项卡面板的tabs使用,jQuery EasyUI选项卡面板tabs使用的注意事项有哪些,下面就是实战案例,一起来看一下。 1、 对选项卡面板区域 p 设置 class=”easyui-tabs” …

    编程技术 2025年3月8日
    200
  • jQuery EasyUI 折叠面板的使用

    这次给大家带来jQuery EasyUI 折叠面板的使用,jQuery EasyUI 折叠面板使用的注意事项有哪些,下面就是实战案例,一起来看一下。 下面小编就为大家分享一篇jQuery EasyUI 折叠面板accordion的使用实例,…

    编程技术 2025年3月8日
    200
  • JavaScript关于IE8兼容问题的处理

    这次给大家带来JavaScript关于IE8兼容问题的处理,JavaScript关于IE8兼容问题处理的注意事项有哪些,下面就是实战案例,一起来看一下。 最初对做兼容性的认知只停留在UI层面,但其实UI层面都还好,因为毕竟你可以直接看得见现…

    2025年3月8日 编程技术
    200
  • 设置cookie过期自动更新和自动获取

    这次给大家带来设置cookie过期自动更新和自动获取,设置cookie过期自动更新和自动获取的注意事项有哪些,下面就是实战案例,一起来看一下。 本文实现cookie的自动获取,及cookie过期自动更新。 社交网站中的很多信息需要登录才能获…

    2025年3月8日
    200
  • 不调用的情况下怎么解决react-native WebView的返回处理

    这次给大家带来不调用的情况下怎么解决react-native WebView的返回处理,不调用的情况下解决react-native WebView的返回处理的注意事项有哪些,下面就是实战案例,一起来看一下。 1.前言 项目中有些页面内容是变…

    2025年3月8日 编程技术
    200
  • 怎样让cookie自动获取和过期自动更新

    这次给大家带来怎样让cookie自动获取和过期自动更新,cookie自动获取和过期自动更新的注意事项有哪些,下面就是实战案例,一起来看一下。 本文实现cookie的自动获取,及cookie过期自动更新。 社交网站中的很多信息需要登录才能获取…

    2025年3月8日
    200
  • 如何解决axios在ie的不兼容

    这次给大家带来如何解决axios在ie的不兼容,解决axios在ie不兼容的注意事项有哪些,下面就是实战案例,一起来看一下。 首先说下axios虽说是支持ie8+,不过其原理是基于promise之上实现的 所以会有不兼容ie的问题 也就是t…

    2025年3月8日
    200
  • 解决vue2.0路由不显示router-view的问题

    这次给大家带来解决vue2.0路由不显示router-view的问题,解决vue2.0路由不显示router-view的注意事项有哪些,下面就是实战案例,一起来看一下。 今天学习vue2.0 的 router-view , 爆出的错误不计其…

    编程技术 2025年3月8日
    200
  • C与View之间怎么进行数据交流

    这次给大家带来C与View之间怎么进行数据交流,C与View之间进行数据交流的注意事项有哪些,下面就是实战案例,一起来看一下。 jQuery.post(url, [data], [callback], [type]) url,[data],…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论