5

IE 9 以降およびその他すべてのブラウザーで問題なく動作するスクリプトがあります。ただし、IE 8 以下では視覚的なエラーが発生します。IE 8 以下のいくつかのアニメーション効果を変更することで、この視覚的なエラーを修正できます。これを行うには、ページに 2 つのスクリプトが必要です。1 つは IE 9 以降、Firefox、Chrome、Safari 用で、もう 1 つは IE 8 以下用です。

これが私が試したことです:

// First the Script that runs for non-IE browsers. 
<!--[if !IE]>
<script type="text/javascript">
// Script that runs
</script>
<![endif]-->

// Now for the Script for IE 8
<!--[if lt IE 9]>
<script type="text/javascript">
// Script that runs
</script>
<![endif]-->

最初の質問と主な質問は、これを試みたときにうまくいかないようです。IE がおかしくなり始め、スクリプトがまったく適切に機能しません。最初のスクリプトを削除して 2 番目のスクリプトを残すと、問題なく動作します。<!--[if !IE]><!-->が正しく機能していないようです。

2 番目の質問: <!--[if !IE]><!-->IE 8 以下のみをターゲットにできますか?

4

1 に答える 1

5

HTML5 ボイラープレートの方法で試してみてください。次に、JS と CSS のクラスごとに IE のバージョンをターゲットにします。

<html>開始タグを次のように置き換えます。ニーズに合わせて調整します:

<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->

JavaScript の場合:

var isIE8 = document.getElementsByClassName('lt-ie9').length;
var isIE7 = document.getElementsByClassName('lt-ie8').length;

if (isIE8) {
  ...
}

if (isIE7) {
  ...
}
于 2012-08-19T08:37:15.290 に答える