Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 浏览器检测的当前最佳实践是什么_Php_Jquery_Html_Cross Browser - Fatal编程技术网

Php 浏览器检测的当前最佳实践是什么

Php 浏览器检测的当前最佳实践是什么,php,jquery,html,cross-browser,Php,Jquery,Html,Cross Browser,我有一个php例程,它接受HTML,对其进行一些处理,并将其显示出来 问题在于,根据浏览器的不同,可能会或可能不会向输出中添加额外的 如果我能得到浏览器,我可以为这个问题编码。然而,我对我所发现的关于如何获取正在使用的浏览器感到困惑 JQuery文档说明不要使用$browser属性。其他人说不要使用navigator.userAgent。那我该用什么呢 谢谢大家! [编辑:感谢大家的精彩回答。我学到了一些新东西,希望将所有回复都标记为答案,但由于我只能选择一个,因此我将选择Justin的回复,因

我有一个php例程,它接受HTML,对其进行一些处理,并将其显示出来

问题在于,根据浏览器的不同,可能会或可能不会向输出中添加额外的

如果我能得到浏览器,我可以为这个问题编码。然而,我对我所发现的关于如何获取正在使用的浏览器感到困惑

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-您确定浏览器实际上添加了一个额外的
元素,而不仅仅是以不同的方式设置元素的样式吗?这听起来像是样式问题,而不是代码问题。