我在使我的网站在多个浏览器中工作时遇到了很大的问题。我想检测用户何时使用任何IE版本。
是否有人在检测到IE时有编码提醒我?
戈登
答案 0 :(得分:6)
您可以使用$.browser
属性:
if ($.browser.msie) {
alert('IE !');
}
答案 1 :(得分:1)
if( /msie/.test(navigator.userAgent.toLowerCase()) ) {
// omg it's an internet explorer
}
这是真正的快速和肮脏的解决方案。无论如何,你应该进行功能检测而不是浏览器检测。例如,如果您需要JSON
解析器,请转到
if( 'JSON' in window ) {}
这将是正确的解决方案。检查浏览器(甚至可能是版本)是不可靠的。
答案 2 :(得分:1)
为什么要检测IE?特征检测而不是浏览器嗅探是尽可能处理事物的首选方式。 (我不认为总是可能,但它几乎总是可能的。)jQuery的jQuery.support
提供了许多这些,并且它的链接页面提供了很好的一般来说,链接到特征检测。或者,正如达林所说,你可以看一下$.browser
,但这确实是最后的选择。
如果您发布有关跨浏览器的实际问题的问题,那么很高的人可以帮助您以不依赖浏览器嗅探的方式解决这些问题。
答案 3 :(得分:1)
除了浏览器与特征检测的价值判断之外,您还可以使用IE条件评论:
<script type="text/javascript">
var isIE = false;
</script>
<![if IE]> <!--- only runs in IE --->
<script type="text/javascript">isIE = true;</script>
<![endif]>
答案 4 :(得分:0)
$。在最新版本的jquery中不支持browser.msie你可以添加jquery-migrate-1.2.1.min.js或使用以下jquery函数...对于IE它也会给你版本... < / p>
调用currentBrowser()。浏览器检测浏览器和currentBrowser()。版本为IE版本.........
function currentBrowser() {
$.returnVal = "";
var browserUserAgent = navigator.userAgent;
if (browserUserAgent.indexOf("Firefox") > -1) {
$.returnVal = { browser: "Firefox" };
}
else if (browserUserAgent.indexOf("Chrome") > -1) {
$.returnVal = { browser: "Chrome" };
}
else if (browserUserAgent.indexOf("Safari") > -1) {
$.returnVal = { browser: "Safari" };
}
else if (browserUserAgent.indexOf("MSIE") > -1) {
var splitUserAgent = browserUserAgent.split(";");
for (var val in splitUserAgent) {
if (splitUserAgent[val].match("MSIE")) {
var IEVersion = parseInt(splitUserAgent[val].substr(5, splitUserAgent[val].length));
}
}
$.returnVal = { browser: "IE", version: IEVersion };
}
else if (browserUserAgent.indexOf("Opera") > -1) {
$.returnVal = { browser: "Opera" };
}
else {
$.returnVal =
{ browser: "other" };
}
return $.returnVal;
}