我需要知道正在查看我的网站的当前浏览器是什么,因为这样我就知道如何执行图像和 CSS 的特定代码,诸如此类的东西......
6 回答
正如您的评论表明您只需要 IE 检测,我所见过的为 CSS 目的检测 IE 的最佳方法是在HTML 5 Boilerplate 项目中使用,该项目使用了Paul Irish 的技术:
<!--[if lt IE 7]> <html class="ie6"> <![endif]-->
<!--[if IE 7]> <html class="ie7"> <![endif]-->
<!--[if IE 8]> <html class="ie8"> <![endif]-->
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
我建议使用 HTML5BP 版本:
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!-- Consider adding a manifest.appcache: h5bp.com/d/Offline -->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
您可以使用嵌入 html 的 javascript 检查浏览器信息。
更多细节可以在这里找到:
http://www.alanwood.net/demos/browserinfo.html
示例代码:(现在可以肯定了)
<!DOCTYPE html>
<html>
<head><title>test</title></head>
<body>
<script>
alert(navigator.userAgent);
</script>
</body>
</html>
为此,有 PHP 和 JavaScript 类/函数。您所要做的就是在谷歌上搜索相应的内容,然后在每个浏览器的基础上根据自己的喜好使用它。你甚至可以更进一步,基于 .htaccess 来做,但总的来说取决于你在做什么,什么时候为什么等等。
总而言之,虽然一般来说缺少一些样式问题,或者一些特定的客户端脚本问题,但几乎你对标准 html 所做的任何事情都可以在所有浏览器中正常工作。
你会想要检查navigator.userAgent
财产。您可以下载一些 Javascript 库来为您进行解析。但是,您应该知道尝试通过解析用户代理字符串来确定浏览器类型是非常不可靠的。
如果您尝试根据浏览器功能切换行为,您应该检查这些特定功能并查看它们是否在当前浏览器中启用。您可以先阅读有关 QuirksMode 的这篇文章。
其他人提到了Modernizr,它只是一个为您进行特征检测的库。这比检查浏览器的用户代理要可靠得多。
使用 XPath API 确定浏览器引擎:
//Gecko
var gecko = (!!window.XPathExpression === true) && "gecko";
//Trident
var trident = (!!window.XPathEvaluator === false && !!window.XPathExpression === false) && "trident";
//WebKit
var webkit = (!!window.XPathEvaluator === true && !!window.XPathExpression === false) && "webkit";
var browser = (String(gecko)+String(trident)+String(webkit)).replace(/false/g,"");
用于document.documentMode
检测 IE 正在使用的模式。
参考