好吧,左小波出山了——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。