我最近看到一些关于避免编码到特定浏览器而不是使用功能/错误检测的信息。看起来,jQuery的创建者John Resig似乎是功能/ bug检测的忠实粉丝(他有一个很好的演讲,其中包括关于YUI Theater的讨论)。我很好奇人们是否发现这种方法在实践中有意义?如果在当前版本的浏览器中这个bug不再存在(这是一个IE6问题,但不是7或8)?浏览器版本或错误检测
1
A
回答
9
对象检测的最大优点是您只能使用客户端浏览器可用的对象和功能。换句话说,给出以下代码:
if (document.getFoo) {
// always put getFoo in here
} else {
// browsers who don't support getFoo go here
}
允许您清除浏览器而不命名名称。这很酷的原因是因为只要浏览器支持getFoo
你不必担心它是哪一个。这意味着您可能实际上支持您从未听说过的浏览器。如果您的目标用户代理字符串找到浏览器,那么您只能支持您认识的浏览器。
此外,如果之前不支持getFoo
的浏览器获取该程序并发布新版本,则无需更改代码,以允许新浏览器利用更好的代码。
0
那么,如果它是IE 6中的问题,但不是IE 7或IE 8,那么功能/错误检测机制将标记为不成问题并使用适当的功能。
它在实践中很有意义,浏览器嗅探会导致很多问题,如果您没有及时更新某个发布的新浏览器的签名,该怎么办?您现在锁定了潜在客户和访问者,因为您认为他们的浏览器无法支持其确实可以实现的功能。
所以是的,它是有道理的,你的第二个问题是没有意义的,因为它首先做了检测,如果它不再是一个bug,那么一切都将按预期工作,没有解决的工作如果错误在那里,请放置!
1
版本和用户代理解析使我想起了刻板印象或种族分析。在我看来,物体检测是一种方法。 “jQuery in Action”一书很好地指出了原因的细节。
3
如果在当前版本的浏览器(这是一个IE6问题,但不是7或8)中不再存在该错误怎么办?
这就是功能/错误检测的要点。如果浏览器更新其功能或修复错误,那么功能/错误检测代码已经是最新的。另一方面,如果您正在浏览器浏览器中,则每次浏览器的功能发生变化时都必须更改代码。
相关问题
- 1. 浏览器版本检测
- 2. grails中的浏览器版本检测
- 3. jQuery的浏览器版本检测
- 4. 当前浏览器版本检测
- 5. 使用GWT检测浏览器版本?
- 6. php检测浏览器版本HTTP_USER_AGENT
- 7. 浏览器版本测试
- 8. 检测浏览器/版本与JavaScript与检测服务器端?
- 9. web2py错误: - 无法检测浏览器
- 10. 跨浏览器测试工具,包括浏览器版本
- 11. 浏览器检测
- 12. 浏览器检测
- 13. 浏览器检测
- 14. 浏览器 - 检测浏览器关闭或标签接近
- 15. 检查浏览器内的JRE版本
- 16. 检测:从卷曲或浏览器
- 17. 检测浏览器和操作系统版本
- 18. 检测手机浏览器的名称和版本
- 19. 如何检测JS的浏览器版本?
- 20. 用于检测浏览器版本的XML/Javascript
- 21. 如何检测网页浏览器名称和版本?
- 22. 从Flash中检测浏览器的类型和版本
- 23. 使用PHP检测IE浏览器版本
- 24. 我可以检测浏览器支持的SSL版本吗?
- 25. 使用mod_rewrite检测多个浏览器和版本
- 26. 从浏览器可靠地检测.NET Framework可用性/版本
- 27. 如何从webkit浏览器检测Android版本和品牌?
- 28. 未使用JavaScript的浏览器版本检测?
- 29. 如何检测浏览器类型及其版本
- 30. 真的检测浏览器支持Javascript是由C#.NET 2.0或更高版本?
有趣的隐喻 – alex 2009-03-02 02:30:36