1. IE の時刻形式は NaN を認識します。
理由: IE は yyyy-MM-dd 形式を認識できないため、yyyy/MM/dd に変換する必要があります。
//正则替换
replace(new RegExp(/-/gm) ,"/")
2. IE10 - let const を宣言できません
3. IE8はフィルターと互換性がありません
if (!Array.prototype.filter)
{
Array.prototype.filter = function(fun /*, thisp */)
{
"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 res = [];
var thisp = arguments[1];
for (var i = 0; i < len; i++)
{
if (i in t)
{
var val = t[i]; // in case fun mutates this
if (fun.call(thisp, val, i, t))
res.push(val);
}
}
return res;
};
}
4. IE10 は JQ の ajax と互換性がありません。
// 全局声明以下代码
jQuery.support.cors = true;
5. IE が @media と互換性がある必要がある場合、CSS ファイルに CSS を書き込む必要があり、スタイルでの書き込みは無効です
6. 背景サイズ: カバーは IE では無効です
-ms-filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='dist/images/registerBg.png',sizingMethod=scale);
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='dist/images/registerBg.png',sizingMethod=scale);
7. イベント監視は完全な互換性があります
/**
* 添加事件监听 兼容IE8
* @param el
* @param type
* @param fn
*/
function addListener(el, type, fn) {
if (el.addEventListener) {
el.addEventListener(type, fn, false);
} else if (el.attachEvent) {
el.attachEvent('on' + type, fn);
}
}
/**
* 移除事件监听 兼容IE8
* @param el
* @param type
* @param fn
*/
function removeListener(el, type, fn) {
if (el.removeEventListener) {
el.removeEventListener(type, fn, false);
} else if (el.detachEvent) {
el.detachEvent('on' + type, fn);
}
}
8. IE8は配列のindexOfをサポートしていません
if (!Array.prototype.indexOf){
Array.prototype.indexOf = function(elt /*, from*/){
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;
};
}