1.find方法兼容
if (!Array.prototype.find) { //解决IE11不兼容find的问题
Array.prototype.find = function (callback) {
return callback && (this.filter(callback) || [])[0];
};
}
2.every方法兼容
if (!Array.prototype.every)
{
Array.prototype.every = function(fun /*, thisArg */)
{
'use strict';
if (this === void 0 || this === null)
throw new TypeError();
var t = Object(this);
var len = t.length >>> 0;
if (typeof fun !== 'function')
throw new TypeError();
var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
for (var i = 0; i < len; i++)
{
if (i in t && !fun.call(thisArg, t[i], i, t))
return false;
}
return true;
};
}
3.some方法兼容
var some;
if (Array.prototype.some) {
some = Array.prototype.some;
} else {
some = function(fun) {
var t = Object(this);
var len = t.length >>> 0;
for (var i = 0; i < len; i++) {
if (i in t && fun.call(this, t[i], i, t)) {
return true;
}
}
return false;
};
}
4.正则表达式的兼容
chrome:new RegExp(/[`~!%#$^&*()=|{}':;',\\[\\]<>/?~]/, "g")
IE:new RegExp("[`~!%#$^&*()=|{}':;',\\[\\]<>/?~]", "g")
5.dispatchEvent方法兼容
chrome:el.dispatchEvent(new Event('input'))
IE: var event = document.createEvent("HTMLEvents");
event.initEvent("input", false, true);
el.dispatchEvent(event);