4

Modernizr ライブラリで html5boilerplate を使用しています。私のアプリケーションは jQuery を使用して構築されています。Modernizr と jQuery の両方に機能検出機能が組み込まれていますが、Modernizr の方がより完全であると理解しています。jQuery を使用する正当な理由がない限り、機能検出には Modernizr を使用する予定です。

私のアプリケーションは、最新のブラウザー (IE7+、Firefox、Chrome、Safari、新しい Opera など) でのみ動作するように意図されていますが、IE6 でもある程度動作します。ユーザーが IE6 などの古いブラウザを使用している場合、大きな太った警告が表示されるようにしたいと思います。また、Chrome またはその他の HTML5 準拠のブラウザーをまだ使用していない場合は、それらにアップグレードするための「提案」を表示したいと思います。

ユーザー エージェント テストを使用したくありません。

  • ユーザーが IE6 を使用しているかどうかを判断するためにテストする必要がある特定の機能のリストはありますか?
  • ユーザーがかなり準拠した HTML5 ブラウザ (Chrome、Safari、IE9 など) でブラウジングしているかどうかを判断するためにテストする必要がある特定の機能のリストはありますか?
4

2 に答える 2

9

HTML5Boilerplate を使用しているとのことです。index.html の一番上にあるのは次のとおりです。

<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]>    <html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]>    <html lang="en" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]>    <html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> 

したがって、jQuery を使用して、古い javascript または css を計画して、html 上の ie6 クラスの存在を単純にテストします。

<style>
.upgrade-notice { display: none; }
.ie6 .upgrade-notice { display: block; }
</style>

<div class="upgrade-notice"><h1>Please upgrade your browser</h1></div>
于 2011-02-13T03:11:50.800 に答える
2

IE のバージョン テストには条件付きコメントを使用します。

<!--[if lt IE 7]><script>window.location='/main/unsupported_browser';</script><![endif]-->

残りについては、使用する機能のみをテストし、それらを使用する場合にのみテストする必要があります。そうすれば、正常に機能を低下させ、動作するブラウザを誤ってブロックすることはありません。

于 2011-02-13T03:05:00.100 に答える