Php 浏览器检测的当前最佳实践是什么
我有一个php例程,它接受HTML,对其进行一些处理,并将其显示出来 问题在于,根据浏览器的不同,可能会或可能不会向输出中添加额外的Php 浏览器检测的当前最佳实践是什么,php,jquery,html,cross-browser,Php,Jquery,Html,Cross Browser,我有一个php例程,它接受HTML,对其进行一些处理,并将其显示出来 问题在于,根据浏览器的不同,可能会或可能不会向输出中添加额外的 如果我能得到浏览器,我可以为这个问题编码。然而,我对我所发现的关于如何获取正在使用的浏览器感到困惑 JQuery文档说明不要使用$browser属性。其他人说不要使用navigator.userAgent。那我该用什么呢 谢谢大家! [编辑:感谢大家的精彩回答。我学到了一些新东西,希望将所有回复都标记为答案,但由于我只能选择一个,因此我将选择Justin的回复,因
如果我能得到浏览器,我可以为这个问题编码。然而,我对我所发现的关于如何获取正在使用的浏览器感到困惑 JQuery文档说明不要使用$browser属性。其他人说不要使用navigator.userAgent。那我该用什么呢 谢谢大家!
[编辑:感谢大家的精彩回答。我学到了一些新东西,希望将所有回复都标记为答案,但由于我只能选择一个,因此我将选择Justin的回复,因为他的回复可能是我的问题的样式设置。]浏览器检测的最佳做法是不要使用它
您应该改用特征检测。查看中的测试套件。如果您真的、真的、真的想了解浏览器,可以使用get_browser()()。我不推荐它,因为它不仅速度慢而且需要不断更新文件,而且根据不同的浏览器为用户提供不同的输出也是一种不好的做法
对于chrome/firefox以外的浏览器,最好在以后修复javascript/css的错误和问题。当前的最佳实践是使用功能检测。有完整的库专门用于此,例如jQueryAPI中的和。我们的想法是检查缺少的功能,然后退回到辅助支持,一直到只提供不支持该功能的消息
现在web开发人员的口头禅是不要进行浏览器检测,但我认为在某些情况下这是不现实的。很多时候,您可能想说“您正在使用Internet Explorer 7!”之类的话,这显然需要通过JavaScript端的php的
get_browser()
或navigator.userAgent
猜测用户代理字符串。我还遇到了一个网络应用程序的问题,IE7和IE8使用了太多的内存来处理一定量的数据——这显然不是一个可以检测到的“功能”
您还可以使用功能检测来猜测特定的浏览器。例如,IE7没有window.localStorage
关键是,如果您想尝试猜测浏览器是什么,您必须接受某种可能的错误。由于1.9,您无法使用$.browser。你认为你到底需要测试什么?为什么>你需要客户端或服务器端的信息?我总是发现&有帮助的
navigator。userAgent
意味着编写你自己的正则表达式/功能,这在后面是一件痛苦的事,让其他人/其他库来做。我如何检测浏览器添加了一个额外的?@user390480-您确定浏览器实际上添加了一个额外的
元素,而不仅仅是以不同的方式设置元素的样式吗?这听起来像是样式问题,而不是代码问题。