向“未经测试”的浏览器显示警告消息的最佳方式?

时间:2011-10-18 14:39:21

标签: javascript jquery cross-browser

我有一个应用程序,我已经在Safari 5,IE 9,FF6和Chrome 14中进行了全面测试。我不打算阻止或排除任何浏览器的体验。但我想警告/通知用户在另一个浏览器中可能有更好的体验,如果他们选择继续,可能会有功能无法正常工作或损坏。

我已经看过jQuery浏览器检测,但它似乎有点古怪。我知道最好的解决方案是基于功能检测进行警告,但我们目前处于测试阶段,我不完全确定功能的成败。比如网络工作者,它已知网络工作者不工作会破坏我们的应用程序,但它适用于IE较低版本。但是,Opera存在一个问题,即网络工作者可用,但无法正常运行。

最终我正在寻找一种简单的方法来说明浏览器X版本y及以上不显示警告,以及那些和显示警告。

最好的方法是什么?

3 个答案:

答案 0 :(得分:1)

看看这个:http://www.w3schools.com/js/js_browser.asp

- 使用javascript检测用户浏览器的简便方法。从那里我只使用switch语句或其他东西来显示尚未测试的浏览器的消息。如果您需要确切的浏览器版本,则必须从“navigator.userAgent”字段中解析它。

答案 1 :(得分:1)

如果目标是完全验证,则需要更加具体地了解版本。请记住,某些浏览器升级不能与以前的版本100%向后兼容。 (例如,看看IE9中的IE8模式与原生IE8渲染是不一样的。)你将不得不重新测试每个新的浏览器版本,迟早会有一个“完全测试浏览器版本X,未经过昨天发布的X + 1版测试“问题。如果用户的体验明显降级,则功能检测,优雅降级以及向用户非侵入式显示的警告是更好的方法。

要直接回答您的问题,如果您必须实现您要求解析用户代理的要求。这可能是有用的,特别是注意你知道无法正常工作和警告的浏览器,或者作为一个写得很糟糕的内部网应用程序的绑定,这对于它将运行的确切浏览器版本非常挑剔。对于您可以控制需求的新开发的应用程序,我不建议在浏览器版本上发出警告,因为有更好的方法可以执行此操作。

答案 2 :(得分:1)

在几乎任何情况下,浏览器检测确实“有点古怪”。 jQuery路线可能和你想要的一样好,但正如你所说它并不好。

更好的解决方案通常是进行功能检测,尤其是在您描述的网站依赖特定功能的情况下。

最佳功能检测库是Modernizr。这将为您提供一堆Javascript标志,根据浏览器是否支持给定功能,这些标志设置为true或false。它检测到对大量内容的支持,包括Web Workers。