ios safari与其他系统的兼容性差异

1.new Date()

  1) 首先new Date() 返回的时间与其他安卓,pc返回的时间是有差异的 在ios上返回的时间是当天时间的8点整,而

   安卓pc返回的时间是当天的0点;解决方案就是判断所处系统,根据系统返回统一时间

  2)new Date()传入时间参数 如new Date('2017-09-11')都能返回出时间对象;当然返回的时间如第一条

    但是再详细点的时间如new Date('2017-11-23 09:00:00')这个方法在ios则会报错返回nolivid date;而在安卓 pc上返回没有问题

    解决方案:使用new Date('2017/11/23 09:00:00')格式能完美兼容pc 安卓 ios 各个系统。

  3)由于开发代码的差异,某些项目会莫名出现浏览器自带返回键返回的页面不重载,导致需要重载的页面显示有误,在安卓上和ios上有差异。

   解决方案:

    $(function () {
      var isPageHide = false;
      window.addEventListener('pageshow', function () {
        if (isPageHide) {
         window.location.reload();
        }
       });
      window.addEventListener('pagehide', function () {
      isPageHide = true;
      });
    });

    添加上面一段jquery代码即可解决。

 

   4)在ios上和android上 fixed定位和absolute定位在底端时,在手机上弹出软键盘显示效果会有差异:

    ios:定位的结构不会跟着软键盘弹出   android:则相反,会跟着软键盘弹出 这样就会造成可能会挡住输入框。造成用户体验不好。

    解决方案:

      <body>
      <input type="text" name="" id="" value="" placeholder="写点什么" />
      <div style="position: absolute;height: 100px;width: 100%; background: red;bottom: 0; left: 0;" id="layer"></div>
      </body>

      var h = (function(){
        return document.body.clientHeight;
      })()
      var layer = document.getElementById("layer");
      window.onresize = function(){
      if(document.body.clientHeight != h) {
      layer.style.display = 'none';
      }
      else {
        layer.style.display = 'block';
      }
      }

    思路主要是在软键盘弹出式,屏幕高度会有变化,从而可以达到自己想要的效果

posted @ 2017-11-23 14:51  eric_z  阅读(490)  评论(0编辑  收藏  举报