好吧,左小波出山了——ie8兼容indexOf问题

  我,还是一个不懂世事的毛头小子,第一次写博。万事开头难,没事咱慢慢来。咳,练文笔吗。我觉得写东西最锻炼逻辑思维,我是一个不善于表达的人,可能是程序员的通病,但你看看人家王小波,八九十年代的作家兼职程序员,可不可怕!所以那都不是借口,同学们表达多重要啊!不会表达,你就不会撩妹。看看王小波长成那德行了,几句情诗美的我银河奶奶那么开心。我是一个看到别人优点就想学的人,因为不学习俺就头疼。

  

  此博客,主要记录的是我的技术之坑对不对。最近的遭遇的ie8杀人事件你难道忘了吗!echarts坑了你一整天你忘了吗!

  好接下来记录下自己最近的坑。

一、ie8血案 

   最近某某官网,落到了鄙人手里,做了一个月改了两个月之多。这里面有多少坑以后再慢慢描述吧,想想我就伤感。

   当我兴冲冲把项目交付上线后,甲方说出了令人恐怖的几个字——必须兼容ie8浏览器。我那jquery各种插件的,每个模块上千行的js异步代码就慌了,这要杀人吗,大名鼎鼎IE8业内流氓谁不知道。还好有一个正义的我出现,稳定住了我那些代码子民的民心。IE8搭起来一通测试,发现问题。

ie8不支持js的indexOf方法。可是我的好多数据去重操作都用了。代码如下:

1 function unique(arr) {
2     var tmp = new Array();
3     for ( var i in arr) {
4         if (tmp.indexOf(arr[i]) == -1) {
5             tmp.push(arr[i]);
6         }
7     }
8     return tmp;
9 }

我寻思这简单啊,一百度好多解indexOf决兼容问题的代码鼠标一挥Copy!

if (!Array.prototype.indexOf)
    {
      Array.prototype.indexOf = function(elt)
      {
        var len = this.length >>> 0;
        var from = Number(arguments[1]) || 0;
        from = (from < 0)
             ? Math.ceil(from)
             : Math.floor(from);
        if (from < 0)
          from += len;
        for (; from < len; from++)
        {
          if (from in this &&
              this[from] === elt)
            return from;
        }
        return -1;
      };
    }

呵呵,没那么容易,你for循环咋多循环了一次,咋还把你这段代码循环到页面上了。天啊。

搞到凌晨一点多,可算解决了。

$("#xxx").each(function(idx,obj){
     if(selectTheadArr.hasOwnProperty(idx)){
            //解决!
    }    
});

hasOwnProperty()函数用于指示一个对象自身(不包括原型链)是否具有指定名称的属性。如果有,返回true,否则返回false

该方法属于Object对象,由于所有的对象都"继承"了Object的对象实例,因此几乎所有的实例对象都可以使用该方法。

 

  好吧,睡觉!明天来聊聊公司的echarts“新demo实例网站”。

  

      今天我感到非常烦闷
          我想念你
          我想起夜幕降临的时候
          和你踏着星光走去
          想起了灯光照着树叶的时候
          踏着婆娑的灯影走去
          想起了欲语又塞的时候
          和你在一起
          你是我的战友
          因此我想念你
          当我跨过沉沦的一切
          向着永恒开战的时候
          你是我的军旗
            
  王小波自己说这是一首烂诗 但有多少人都爱它。虽然我不是王小波,没有他华丽的辞藻,但我会是一个有趣的zuo。
posted @ 2017-08-24 21:56  ZzUuOo666  阅读(305)  评论(0编辑  收藏  举报