这是 jQuery 特定的,包含了一些处理 Chrome 的 hack/fix。这在 jQuery 1.5.1 到 jQuery 1.8.3 之间有效。它在 jQuery 1.9 中消失了。可能是因为它使用不当过于频繁,并且损害了网络。最好在可能的情况下进行 功能检测。
var userAgent = navigator.userAgent.toLowerCase(),
browser = '',
version = 0;
$.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase());
// Is this a version of IE?
if ($.browser.msie) {
userAgent = $.browser.version;
userAgent = userAgent.substring(0,userAgent.indexOf('.'));
version = userAgent;
browser = "Internet Explorer";
}
// Is this a version of Chrome?
if ($.browser.chrome) {
userAgent = userAgent.substring(userAgent.indexOf('chrome/') + 7);
userAgent = userAgent.substring(0,userAgent.indexOf('.'));
version = userAgent;
// If it is chrome then jQuery thinks it's safari so we have to tell it it isn't
$.browser.safari = false;
browser = "Chrome";
}
// Is this a version of Safari?
if ($.browser.safari) {
userAgent = userAgent.substring(userAgent.indexOf('safari/') + 7);
userAgent = userAgent.substring(0,userAgent.indexOf('.'));
version = userAgent;
browser = "Safari";
}
// Is this a version of Mozilla?
if ($.browser.mozilla) {
//Is it Firefox?
if (navigator.userAgent.toLowerCase().indexOf('firefox') != -1) {
userAgent = userAgent.substring(userAgent.indexOf('firefox/') + 8);
userAgent = userAgent.substring(0,userAgent.indexOf('.'));
version = userAgent;
browser = "Firefox"
}
// If not then it must be another Mozilla
else {
browser = "Mozilla (not Firefox)"
}
}
// Is this a version of Opera?
if ($.browser.opera) {
userAgent = userAgent.substring(userAgent.indexOf('version/') + 8);
userAgent = userAgent.substring(0,userAgent.indexOf('.'));
version = userAgent;
browser = "Opera";
}
// Now you have two variables, browser and version
// which have the right info
有趣。它显示了来自 Android 浏览器库存的 Safari 533。
我正在使用 Safari,但 Safari 的最新版本是 5.0.3(6533.19.4)。533 是指版本号还是构建号中的 533?
不知道,我的朋友。不是我的代码片段 :)
用以下代码替换 Safari 的代码,您将收到“Safari 5”。
K-Meleon 是 …… Mozilla(不是 Firefox)0
hehe
我不明白这如何填充到代码下方浏览器信息处的 id?也许我太蠢了。
@thomas
$(‘#browser-info-here’).append(browser + ” ” + version);
FYI,$.browser 在 jQuery 1.9 中被删除了。
然后在您的代码中包含“jQuery Migrate”插件。
要检测用户浏览器,我使用 quirksmode 上发布的脚本。
它向 html 添加了 mozilla 类,但是我的浏览器是 chrome!我不明白。
移动设备呢?
使用功能检测并不“更好”。
100% 的时间里,您都需要修复浏览器特定的问题,而唯一的方法就是检查浏览器和版本。
5% 的时间里,您需要检查某个功能是否受支持,而最好的答案实际上是功能检测。
就像 div、table 或其他任何东西:并不是因为有些人滥用它,它就会自动变成一件应该避免的坏事。