2013-04-21 17 views
40

ユーザーがIE 10を使用している場合、ページの読み込み時にメッセージボックスを表示させるにはどうすればよいですか?IE 10を確認する

function ieMessage() { 
    alert("Hello you are using I.E.10"); 
} 

マイウェブページはJSFのfacelet(XHTML)です。

+6

これを実行する必要がありますなぜ? – Ryan

+0

学校向けプロジェクト、別のブラウザでメッセージを表示する必要があります:) – user2292674

+0

[JavaScriptのブラウザ検出?](http://stackoverflow.com/questions/2400935/browser-detection-in-javascript) – Vucko

答えて

54

本当WA IE 11で実行されます

if (isIE10) { 
    // Using Internet Explorer 10 
} 

参考:How can I detect IE10 from JS when browser mode is IE9?

<script type="text/javascript"> 
    var isIE10 = false; 
    /*@cc_on 
     if (/^10/.test(@_jscript_version)) { 
      isIE10 = true; 
     } 
    @*/ 
    console.log(isIE10); 
</script> 

このコードを実行した後、あなたは後にいつでも使用することができます以下、yは条件付きコメントなしとユーザーエージェントスニッフィングなしに、これを検出することが条件付きコンパイルであります


更新日:

コメントの縮小を避けるために、あなたのようなものを使用することができます

var IE = (function() { 
    "use strict"; 

    var ret, isTheBrowser, 
     actualVersion, 
     jscriptMap, jscriptVersion; 

    isTheBrowser = false; 
    jscriptMap = { 
     "5.5": "5.5", 
     "5.6": "6", 
     "5.7": "7", 
     "5.8": "8", 
     "9": "9", 
     "10": "10" 
    }; 
    jscriptVersion = new Function("/*@cc_on return @_jscript_version; @*/")(); 

    if (jscriptVersion !== undefined) { 
     isTheBrowser = true; 
     actualVersion = jscriptMap[jscriptVersion]; 
    } 

    ret = { 
     isTheBrowser: isTheBrowser, 
     actualVersion: actualVersion 
    }; 

    return ret; 
}()); 

をと(JScriptのバージョンの内部の値から翻訳された)IE.isTheBrowserIE.actualVersionのようにプロパティにアクセスします。ここで

+0

ありがとうございます。完全にうまくいっています – user2292674

+1

これはIEのさまざまなバージョンでこれをテストするのがもっと迷惑でしょう。 –

+0

@AlexW本当は。 IEバージョンを元のバージョンに戻すために変更するのはかなり簡単です(特定のバージョンに基づいて真/偽ではなく)、実際には信頼できます。だから私はむしろ変更して変更することができる何かよりもうまく動作するものを使用することになります – Ian

27

一般に、ユーザーエージェントのスニッフィングと条件付きのコンパイル/コメントの実行は避けるのが最善です。代わりにfeature detection,graceful degradationおよびprogressive enhancementを使用する方がはるかに良いです。しかし、それは、ブラウザのバージョンを検出するために、開発者にとってより便利であるいくつかのエッジケースのために、次のコードスニペットを使用することができます。

このif文はIEのみ10

// IF THE BROWSER IS INTERNET EXPLORER 10 
if (navigator.appVersion.indexOf("MSIE 10") !== -1) 
{ 
    window.alert('This is IE 10'); 
} 

この上で実行されますif文は唯一

// IF THE BROWSER IS INTERNET EXPLORER 11 
var UAString = navigator.userAgent; 
if (UAString.indexOf("Trident") !== -1 && UAString.indexOf("rv:11") !== -1) 
{ 
    window.alert('This is IE 11'); 
} 

http://jsfiddle.net/Qz97n/

+0

ありがとうございます:) – user2292674

+0

おかげで多くのことが完璧に動作しています – user2292674

+1

すばらしいコード!私はこれを行う方法を何時間も探してきました。 IE11も含めて+1) – www139

20

は、現在のIEやIEのバージョンを取得するためのメソッドです:

function IE(v) { 
    return RegExp('msie' + (!isNaN(v)?('\\s'+v):''), 'i').test(navigator.userAgent); 
} 

は、ここであなたがそれを使用することができます方法は次のとおりです。

if(IE()) alert('Internet Explorer!'); 
if(IE(10)) alert('Internet Explorer 10!'); 
+0

どこから来たのですか? – Rhyso

+1

@Rhyso関数に渡すパラメータです。この場合は数値10です。 –

+0

ごめんなさい。使用例を見てください。:) – Rhyso

関連する問題