web-dev-qa-db-ja.com

ブラウザがInternet Explorerの場合:代わりに代替スクリプトを実行します

ブラウザで非常に重い画像カルーセルスクリプトを使用しています。 OperaおよびChrome、FFで半分まともであり、IEで私のボールを完全に破壊します。したがって、IEユーザーにアクション/ JSのない単純なHTML。

スクリプトはMTまたはjQueryおよびそのような380行のJSを使用しません。IEユーザーに単純なHTML代替を提供することは可能でしょうか?

var browserName=navigator.appName; if (browserName=="Microsoft Internet Explorer") { // what command can i use? }

26
dimmy4

この記事は非常に説明的です http://msdn.Microsoft.com/en-us/library/ms537509%28v=vs.85%29.aspx

JSが目立たない場合は、次を使用できます。

<![if !IE]>
   <script src...
<![endif]>
22
Flack

IE固有のjavascriptを含めるには、次のようなことを実行できます。

<!--[IF IE]>
    <script type="text/javascript">
        // IE stuff
    </script>
<![endif]-->
20
Seth

IE10 +の場合、標準状態はエンジンの変更やその他の理由で機能しません。原因は、MSIEであるということです。しかし、IE10 +の場合は、スクリプトでこのようなsmthを実行する必要があります

if (!!navigator.userAgent.match(/Trident\/7\./)){
//do stuff for IE.
}
12
Y.Puzyrenko

デフォルトのtrueでブール値を定義してから、 IE条件付きコメント 内で値をfalseに設定し、この値を使用して高度なコードを実行するかどうかを決定します。何かのようなもの:

<script type="text/javascript">var runFancy = true;</script>
<!--[if IE]>
<script type="text/javascript">
    runFancy = false;
    //any other IE specific stuff here
</script>
<![endif]-->
<script type="text/javascript">
    if (runFancy) {
         //do your code that works with sane browsers
    }
</script>
12
Ender

var browserName = navigator.appName; if(browserName == "Microsoft Internet Explorer"){document.write( "IEのHTML")}

4
MayorMonty

ここに私が使用したスクリプトがあり、それは魅力のように機能します。 IE特定のスクリプトがIEに何かを追加しますが、元のコードは削除しません。

    <script>runFancy = true;</script>
<!--[if IE]>
<script type="text/javascript">
    runFancy = false;
 </script> // <div>The HTML version for IE went here</div>
<![endif]-->

    // Below is the script used for all other browsers:
    <script src="accmenu/acac1.js" charset="utf-8" type="text/javascript"></script><script>ac1init_doc('',0)</script> 
2
dimmy4

これを試してください:systemLanguageとuserLanguageは、すべてのブラウザーで未定義です。

if(navigator.userLanguage !== "undefined" && navigator.systemLanguage !== "undefined" && navigator.userAgent.match(/trident/i)) {
    alert("hello Explorer i catch U :D")
  }
1
Péter Zajácz

すべてのブラウザーでテストします。

<![if !IE]><script type="text/javascript">BROWSERIE = false;</script><![endif]>
<!--[if IE]><script type="text/javascript">BROWSERIE = true;</script><![endif]-->

最初の条件付きコメントは適切なブラウザーで機能し、2番目のコメントはIEで機能します。それはグローバル変数です。次に、任意の部分、またはページに含まれるJSからアクセスして、次のようにテストします。

console.log('isIE = ' + BROWSERIE);
console.log(typeof BROWSERIE);
if(BROWSERIE) $('.modal').removeClass('fade'); // for example, if `fade` causes an error in IE.
0
victorf

スクリプトを実行しているブラウザの純粋なjsで決定することもできることに注意してください:window.navigator.userAgent

ただし、ブラウザの設定で構成できるため、推奨される方法ではありません。そこに利用可能な詳細情報: https://developer.mozilla.org/fr/docs/DOM/window.navigator.userAgent

0
Żabojad