ieBetter.js-IE 6-IE 8にIE 9+,Chromeなどのブラウザ機能を持たせる

1867 ワード

IE 6-IE 8ブラウザは、現代ブラウザのAPIに従って作業すれば良い!つまり、現代のブラウザでどのように使うかに関心を持っていれば、IE 6-IE 8については、パッチJSを追加的に導入し、万事OK、歌舞昇平、天下大吉!この導入パッチJSはここのieBetter.jsである.私はこの導入をJSという「同調戦略」と呼ぶ.
現在、ieBetter.jsの圧縮後のサイズは30Kである.大きさは基本的にjQueryの1/3である.
IE 9+やChrome、FireFoxなどのブラウザを使って、直接外に出て左に曲がってロマンチックなスモッグの景色を楽しむ方法.IE 6-IE 8ブラウザはieBetter.jsを導入する.どのように干渉なしに導入しますか?
最初に思いついたのはIEの条件注釈で、以下の通りです.
<!--[if lte IE 8]>
<script src="ieBetter.js"></script>
<![endif]-->

しかし、IE 10+ブラウザはすでに条件注釈say googbyeについています!そのため、例えば私のIE 11ブラウザのIE 7、IE 8互換モードでは、条件注釈が直接吊り下げられ、息が切れました!
そこで、より広範な適用性のために、次の方法を試してみましょう.
if (!document.addEventListener) {
    // IE6~IE8
    document.write('<script src="ieBetter.js"><\/script>');	
}

あるいは、IE 6~IE 8にieBetter.jsだけロードする方法はありますか?
APIドキュメント現在、ieBetter.jsは現代のブラウザに近いAPIをカバーしている:•セレクタ関連API*.querySelector*.querySelectorAll*.getElementsByClassName
•イベント関連API*.addEventListener*.removeEventListener*.dispatchEventdocument.createEventinit[|Mouse|UI]Eventinputwindow.onhashchange
•DOM特性関連APIwindow.getComputedStyle
•ES 5 JSON拡張JSON.parseJSON.stringify
•ES 5 Object拡張Object.createObject.keys
•DateオブジェクトDate.now
•ES 5 Function拡張Function.bind
•ES 5 String拡張String.trim
•ES 5配列法拡張Array.isArrayArray.forEachArray.mapArray.filterArray.someArray.everyArray.indexOfArray.lastIndexOfArray.reduceArray.reduceRight
ここで使用するには、私が作成したAPIドキュメントページを参照してください:ieBetter.js中国語APIドキュメントページ