|
|
|
if(![].indexOf){
|
|
|
|
/**
|
|
|
|
* 检查指定的值是否在数组中
|
|
|
|
* @param {Object} o 要检查的值
|
|
|
|
* @return {Number} o在数组中的索引(如果不在数组中则返回-1)
|
|
|
|
*/
|
|
|
|
Array.prototype.indexOf = function (o) {
|
|
|
|
for (var i = 0, len = this.length; i < len; i++) {
|
|
|
|
if (_.isEqual(o, this[i])) {
|
|
|
|
return i;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(![].lastIndexOf){
|
|
|
|
/**
|
|
|
|
* 检查指定的值是否在数组中
|
|
|
|
* ie67不支持数组的这个方法
|
|
|
|
* @param {Object} o 要检查的值
|
|
|
|
* @return {Number} o在数组中的索引(如果不在数组中则返回-1)
|
|
|
|
*/
|
|
|
|
Array.prototype.lastIndexOf = function (o) {
|
|
|
|
for (var len = this.length, i = len - 1; i >= 0; i--) {
|
|
|
|
if (_.isEqual(o, this[i])) {
|
|
|
|
return i;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
}/**
|
|
|
|
* 特殊情况
|
|
|
|
* Created by wang on 15/6/23.
|
|
|
|
*/
|
|
|
|
//解决console未定义问题 guy
|
|
|
|
window.console = window.console || (function () {
|
|
|
|
var c = {};
|
|
|
|
c.log = c.warn = c.debug = c.info = c.error = c.time = c.dir = c.profile
|
|
|
|
= c.clear = c.exception = c.trace = c.assert = function () {
|
|
|
|
};
|
|
|
|
return c;
|
|
|
|
})();
|
|
|
|
/*
|
|
|
|
* 前端缓存
|
|
|
|
*/
|
|
|
|
window.localStorage || (window.localStorage = {
|
|
|
|
items: {},
|
|
|
|
setItem: function (k, v) {
|
|
|
|
BI.Cache.addCookie(k, v);
|
|
|
|
},
|
|
|
|
getItem: function (k) {
|
|
|
|
return BI.Cache.getCookie(k);
|
|
|
|
},
|
|
|
|
removeItem: function (k) {
|
|
|
|
BI.Cache.deleteCookie(k);
|
|
|
|
},
|
|
|
|
key: function () {
|
|
|
|
|
|
|
|
},
|
|
|
|
clear: function () {
|
|
|
|
this.items = {};
|
|
|
|
}
|
|
|
|
});if (typeof Set !== 'undefined' && Set.toString().match(/native code/)) {
|
|
|
|
|
|
|
|
} else {
|
|
|
|
Set = function () {
|
|
|
|
this.set = {}
|
|
|
|
};
|
|
|
|
Set.prototype.has = function (key) {
|
|
|
|
return this.set[key] !== undefined;
|
|
|
|
};
|
|
|
|
Set.prototype.add = function (key) {
|
|
|
|
this.set[key] = 1
|
|
|
|
};
|
|
|
|
Set.prototype.clear = function () {
|
|
|
|
this.set = {}
|
|
|
|
};
|
|
|
|
}//修复ie9下sort方法的bug
|
|
|
|
;!function (window) {
|
|
|
|
var ua = window.navigator.userAgent.toLowerCase(),
|
|
|
|
reg = /msie|applewebkit.+safari/;
|
|
|
|
if (reg.test(ua)) {
|
|
|
|
var _sort = Array.prototype.sort;
|
|
|
|
Array.prototype.sort = function (fn) {
|
|
|
|
if (!!fn && typeof fn === 'function') {
|
|
|
|
if (this.length < 2) {
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
var i = 0, j = i + 1, l = this.length, tmp, r = false, t = 0;
|
|
|
|
for (; i < l; i++) {
|
|
|
|
for (j = i + 1; j < l; j++) {
|
|
|
|
t = fn.call(this, this[i], this[j]);
|
|
|
|
r = (typeof t === 'number' ? t :
|
|
|
|
!!t ? 1 : 0) > 0;
|
|
|
|
if (r === true) {
|
|
|
|
tmp = this[i];
|
|
|
|
this[i] = this[j];
|
|
|
|
this[j] = tmp;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return this;
|
|
|
|
} else {
|
|
|
|
return _sort.call(this);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}(window);
|