1

重複の可能性:
HTML5 <canvas> がサポートされていないことを検出する最良の方法

$.browserが $.support を支持して jQuery から取り出されたので、jQueryまたはプレーンな JavaScript で IE8 を検出するにはどうすればよいでしょうか?

if ($.browser.msie  && parseInt($.browser.version, 10) === 8) {
  alert('IE8'); 
}

申し訳ありませんが、HTML は機能しません。だから私はこれを行うことはできません:

<!--[if IE 8]>
<script type="text/javascript">
    ie = 8;
</script>
<![endif]-->

具体的には、canvas タグを使用したいと考えていますが、IE8 は canvas をサポートしていませんが、jQuery.support は canvas のサポートを検出しません。

4

2 に答える 2

8

代わりに機能をテストします。

var el = document.createElement('canvas');
if (el.getContext && el.getContext('2d')) {
    // canvas supported 
}

編集:

Brandon Boone のコメントで提案されているリンクのように、これを行う関数を次に示します。

function isCanvasSupported(){
  var elem = document.createElement('canvas');
  return !!(elem.getContext && elem.getContext('2d'));
}
于 2012-07-06T21:41:04.117 に答える
2

jQuery で必要な処理が行われない場合は、機能検出にModernizrを使用することをお勧めします。

$.browserもちろん、もう 1 つのオプションは、非推奨になる前の古いバージョンの jQuery を使い続けることです。これまでと同じように機能します。最新バージョンへのアップグレードを強制する人はいません。

最後に、HTML を編集できないため、条件付きコメントを使用できないと述べています。ただし、IE は条件付きコメントに相当する Javascript もサポートしていることに注意してください。この機能を使用できると思います。

次のコードはウィキペディアから取得したものです。必要に応じて変更してください。

<script>
/*@cc_on

  @if (@_jscript_version == 10)
    document.write("You are using IE10");

  @elif (@_jscript_version == 9)
    document.write("You are using IE9");

  @elif (@_jscript_version == 5.8)
    document.write("You are using IE8");

  @elif (@_jscript_version == 5.7 && window.XMLHttpRequest)
    document.write("You are using IE7");

  @elif (@_jscript_version == 5.6 || (@_jscript_version == 5.7 && !window.XMLHttpRequest))
    document.write("You are using IE6");

  @elif (@_jscript_version == 5.5)
    document.write("You are using IE5.5");

  @else
    document.write("You are using IE5 or older");

  @end

@*/
</script>
于 2012-07-06T21:43:07.300 に答える