我有一个已经在Safari5、IE9、FF6和Chrome14上进行了全面测试的应用程序,我并不打算阻止或排除任何浏览器的体验。但我想警告/通知用户,在另一个浏览器中可能会有更好的体验,如果他们选择继续,可能会有一些功能无法工作或损坏。
我看过jQuery浏览器检测,但它似乎有点奇怪。我知道最好的解决方案是基于功能检测的警告,但我们目前还处于测试阶段,我不完全确定哪些功能的成败。例如网络工作者,众所周知,网络工作者不工作会破坏我们的应用程序,但它在IE较低版本中工作。但是Opera有一个问题,网络工作者可以使用,但不能正常工作。
最终,我正在寻找一种简单的方法来说明浏览器X版本y和更高版本不显示警告,而那些和正在显示警告。
实现这一目标的最好方法是什么?
发布于 2011-10-18 23:00:25
几乎在任何情况下,浏览器检测都是“有点怪异”。jQuery路径可能和您能得到的一样好,但正如您所说的,它并不好。
更好的解决方案通常是进行功能检测,特别是在您所描述的网站依赖于特定功能的情况下。
最好的特征检测库是Modernizr。这将为您提供一组Javascript标志,这些标志根据浏览器是否支持给定功能而设置为true或false。它检测对一大堆东西的支持,包括Web Workers。
发布于 2011-10-18 22:52:47
看看这个:http://www.w3schools.com/js/js_browser.asp
使用javascript检测用户浏览器的-Easy方式。在那里,我只需使用switch语句或其他语句来显示尚未测试的浏览器的消息。如果你想要确切的浏览器版本,你必须从"navigator.userAgent“字段中解析它。
发布于 2011-10-18 22:57:41
如果目标是完全验证,则需要更具体地说明版本。请记住,一些浏览器升级并不是100%向后兼容以前的版本。(例如,看看IE9中的IE8模式与原生IE8呈现是如何不同的。)你将不得不重新测试每个新的浏览器版本,迟早会有一个“在浏览器版本X上完全测试,而没有在昨天发布的版本X+1上测试”的问题。功能检测、优雅降级以及在用户体验显著降级时以非侵入性方式向用户显示警告是一种更好的方式。
要直接回答您的问题,如果您必须实现所要求的内容,只需解析用户代理即可。这可能是很有用的,特别是你知道浏览器不能正常工作并发出警告,或者作为一个糟糕的内部网应用程序的创可贴,它对运行它的确切浏览器版本非常挑剔。对于一个新开发的应用程序,你可以控制需求,我不建议在浏览器版本上警告,因为有更好的方法来做到这一点。
https://stackoverflow.com/questions/7809073
复制相似问题