4

我将 html5boilerplate 与 Modernizr 库一起使用。我的应用程序是使用 jQuery 构建的。Modernizr 和 jQuery 都内置了特征检测,但我的理解是 Modernizr 更完整。我打算使用 Modernizr 进行特征检测,除非有充分的理由为此使用 jQuery。

我的应用程序仅适用于更现代的浏览器(例如 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 回答