Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.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
Javascript 除了检索UserAgent之外,还有其他获取浏览器信息的方法吗?_Javascript_Jquery - Fatal编程技术网

Javascript 除了检索UserAgent之外,还有其他获取浏览器信息的方法吗?

Javascript 除了检索UserAgent之外,还有其他获取浏览器信息的方法吗?,javascript,jquery,Javascript,Jquery,我的方案是检索浏览器和布局信息-包括版本,并将其保留以进行历史跟踪。所以这不是为了检查功能。由于JQuery.browser已经过时,我看到最流行的解决方法是阅读navigator.userAgent。然而,这个值是不稳定的,可以被浏览器覆盖,我想这不应该是推荐的方法。还有别的办法吗 您实际上只有两个选择: 您可以相信userAgent字符串 您可以在浏览器上运行各种各样的功能测试,以尝试确定它到底是哪个浏览器系列和版本 如果您想了解各种不同的浏览器(包括移动浏览器)以及每种浏览器的各种版本,那

我的方案是检索浏览器和布局信息-包括版本,并将其保留以进行历史跟踪。所以这不是为了检查功能。由于JQuery.browser已经过时,我看到最流行的解决方法是阅读navigator.userAgent。然而,这个值是不稳定的,可以被浏览器覆盖,我想这不应该是推荐的方法。还有别的办法吗

您实际上只有两个选择:

  • 您可以相信userAgent字符串
  • 您可以在浏览器上运行各种各样的功能测试,以尝试确定它到底是哪个浏览器系列和版本
  • 如果您想了解各种不同的浏览器(包括移动浏览器)以及每种浏览器的各种版本,那么为每种浏览器/版本组合确定测试是一项艰巨的工作

    我想说这真的取决于你收集信息的目的。如果你真的很好奇什么浏览器在使用你的应用程序,那么你可以将你的浏览器和测试支持指向那些使用你的应用程序最多的浏览器,那么仅仅使用用户代理字符串可能就可以了。绝大多数浏览器不会伪造useragent,因此如果这是用于统计,那么少量的伪造不会以任何方式扭曲您的数字,并且使用useragent字符串非常简单

    如果您试图在给定的浏览器中决定在特定的浏览器中依赖什么javascript功能,那么您最好设计一个功能测试,看看该浏览器是否真的具有您想要使用的功能,因为这里的错误用户代理字符串的后果(或者你自己的代码中有一个错误的useragent逻辑)就是应用程序在浏览器中不能正常工作


    一个“中间”解决方案可能是只识别浏览器所属的系列(即,Chrome、Firefox、Safari等)如果你不关心具体是哪个版本,那么一组功能测试可能会毫不费力地识别出来,因为每个家庭都有至少几个识别特殊功能。这肯定比仅仅使用useragent需要更多的工作,但比使用特征测试


    另一个“中间”解决方案可能是通过上述更简单的功能测试来识别浏览器系列,然后查看这是否与userAgent字符串一致,如果一致,则您决定相信该版本的userAgent字符串。如果不一致,则抛出数据,认为浏览器在某处欺骗了您(或您的测试有轻微缺陷).

    据我所知,这是唯一的方法…除非你想对它支持的HTML标记进行一些测试,告诉IE版本谢谢你的评论。我问这个问题是因为我从Salesforce文档中读到,这个值是可选的,不应该依赖。但现在它是唯一的选项,适用于大多数主要的眉毛我想这已经足够好了。我已经向Salesforce发送了一份文件更改请求。