Javascript 确定用户是否实际使用Safari的最佳方法是什么?

Javascript 确定用户是否实际使用Safari的最佳方法是什么?,javascript,cross-browser,Javascript,Cross Browser,确定用户是否实际使用Safari的最佳方法是什么?您可能需要阅读,然后了解,您可以做的最好的方法是探测用户告诉您的是他们正在使用的浏览器,这将是用户代理。您永远不能百分之百肯定地说他们正在使用给定的浏览器,因为您必须依赖于从浏览器传输的内容,并且它可以在许多点上被覆盖 然而,quirksmode.org解决方案通常是处理跨所有引擎和浏览器的单一检查的最佳方式 您是否使用了一个特定的javascript框架,可以让您更准确地确定他们在使用什么?您使用的服务器端语言是什么?还有人问,为什么只使用Sa

确定用户是否实际使用Safari的最佳方法是什么?

您可能需要阅读,然后了解,您可以做的最好的方法是探测用户告诉您的是他们正在使用的浏览器,这将是用户代理。您永远不能百分之百肯定地说他们正在使用给定的浏览器,因为您必须依赖于从浏览器传输的内容,并且它可以在许多点上被覆盖

然而,quirksmode.org解决方案通常是处理跨所有引擎和浏览器的单一检查的最佳方式


您是否使用了一个特定的javascript框架,可以让您更准确地确定他们在使用什么?您使用的服务器端语言是什么?还有人问,为什么只使用Safari?

其他人已经注意到浏览器嗅探并不理想,但有些情况下,bug只发生在浏览器中,很难检测到。在这种情况下,您可以进行浏览器嗅探,并希望用户代理字符串有效。以下是ExtJS的功能

var ua = navigator.userAgent.toLowerCase();
var isChrome = /\bchrome\b/.test(ua);
var isSafari = !isChrome && /safari/.test(ua);
查看源的第62行:http://dev.sencha.com/deploy/dev/docs/source/Ext.html 以易于阅读的格式提供所有Ext浏览器检测功能

这很脆弱,在新版本和浏览器出现时可能无法工作


告诉我们您为什么要测试safari,这样我们可以确保没有更好的方法来实现您的目标。

出于好奇,您为什么要专门检测safari?在大多数情况下,您不想检测浏览器,只想检测浏览器功能。你在做什么,仅仅因为它是Safari就要求你发送Safari的东西?你们在担心什么=你曾经成功地解决过这个问题吗?你还需要帮助吗?这是我的另一个首选方法。这是我更愿意依赖的。太多的问题与我的问题无关。这只是你的好奇心。。。哈哈@尽管如此,它们仍然是有效的问题。请接受答案或结束问题。做一个好的社区成员。
if(navigator.userAgent.toLowerCase().indexOf("safari") != -1 && navigator.userAgent.toLowerCase().indexOf("chrome") == -1){
    // you code here
}