我有一个jQuery代码,适用于Chrome / Mozilla但不适用于IE。
if ($("html").hasClass("ie")) {
$(function(){
$('.green-column, .red-column, .grey-column').click(function() {
alert ($(this).attr("data-type"));
});
});
}
else {
$(function(){
$('.green-column, .red-column, .grey-column').click(function() {
$("<div title='Selected Task is:'>" + $(this).attr("data-type") + "</div>").dialog({
modal: true,
resizable: false,
buttons: [
{
text: "OK",
click: function() { $( this ).dialog( "close" ); }
}
]
});
});
});
}
</script>
<!--[if IE 7]> <html lang="en-us" class="ie"> <![endif]-->
<!--[if IE 8]> <html lang="en-us" class="ie"> <![endif]-->
<!--[if gt IE 8]><!--> <html lang="en-us" class="ie"> <!--<![endif]-->
所以我计划对IE9 / IE10使用警报,但我无法区分浏览器。谁能告诉我如何在jQuery / HTML中识别IE9 / IE10?
答案 0 :(得分:14)
可以在不使用库或条件编译的情况下实现:
if (document.addEventListener) {
alert("IE9 or greater");
}
if (window.requestAnimationFrame) {
alert("IE10 or greater");
}
答案 1 :(得分:7)
就这样做
if ($.browser.msie && parseInt($.browser.version, 10) > 8) {
alert('IE9 or IE10');
} else {
alert('Non IE9 or IE10');
}
答案 2 :(得分:6)
检测当前活动的IE版本(可能是模拟的)的唯一可靠方法是合并conditional compilation和document.documentMode
检查。
条件编译是可选的,但它允许您永远不会为非IE浏览器运行IE检测脚本。
例如:
if (/*@cc_on !@*/false && (
document.documentMode === 9 || document.documentMode === 10)
) {
// IE 9 or 10 (not 8 or 11!)
document.documentElement.className += ' ie9 ie10';
}
以前的代码对于缩放器是不安全的。如果您要缩小代码,请将条件编译内容放在一个字符串中,然后eval
:
if (eval('/*@cc_on !@*/false') && ( ... )) { ... }
答案 3 :(得分:2)
1.9之前的旧版jQuery版本提供$.browser
来获取此信息。现在jQuery希望您通过$.support
检查功能。
一个很好的选择是modernizr(http://modernizr.com/)。 Modernizr将类添加到您的根元素,如msie
或ie9
或webkit
或touch
,依此类推。
所以你可以轻松检查:
if ($('html').hasClass('ie9')) {
// do something
}
答案 4 :(得分:1)
我知道这是一个老问题。但如果你没有找到答案。
Show a message if the browser is not internet explorer 9 or greater
browser={};
if (/(chrome\/[0-9]{2})/i.test(navigator.userAgent)) {
browser.agent = navigator.userAgent.match(/(chrome\/[0-9]{2})/i)[0].split("/")[0];
browser.version = parseInt(navigator.userAgent.match(/(chrome\/[0-9]{2})/i)[0].split("/")[1]);
} else if (/(firefox\/[0-9]{2})/i.test(navigator.userAgent)) {
browser.agent = navigator.userAgent.match(/(firefox\/[0-9]{2})/i)[0].split("/")[0];
browser.version = parseInt(navigator.userAgent.match(/(firefox\/[0-9]{2})/i)[0].split("/")[1]);
} else if (/(MSIE\ [0-9]{1})/i.test(navigator.userAgent)) {
browser.agent = navigator.userAgent.match(/(MSIE\ [0-9]{1})/i)[0].split(" ")[0];
browser.version = parseInt(navigator.userAgent.match(/(MSIE\ [0-9]{1})/i)[0].split(" ")[1]);
} else if (/(Opera\/[0-9]{1})/i.test(navigator.userAgent)) {
browser.agent = navigator.userAgent.match(/(Opera\/[0-9]{1})/i)[0].split("/")[0];
browser.version = parseInt(navigator.userAgent.match(/(Opera\/[0-9]{1})/i)[0].split("/")[1]);
} else if (/(Trident\/[7]{1})/i.test(navigator.userAgent)) {
browser.agent = "MSIE";
browser.version = 11;
} else {
browser.agent = false;
browser.version = false;
}
if (/(Windows\ NT\ [0-9]{1}\.[0-9]{1})/.test(navigator.userAgent)) {
browser.os = "Windows";
switch(parseFloat(navigator.userAgent.match(/(Windows\ NT\ [0-9]{1}\.[0-9]{1})/)[0].split(" ")[2])) {
case 6.0:
browser.osversion = "Vista";
break;
case 6.1:
browser.osversion = "7";
break;
case 6.2:
browser.osversion = "8";
break;
default:
browser.osversion = false;
}
} else if (/(OS\ X\ [0-9]{2}\.[0-9]{1})/.test(navigator.userAgent)) {
browser.os = "OS X";
browser.osversion = navigator.userAgent.match(/(OS\ X\ [0-9]{2}\.[0-9]{1})/)[0].split(" ")[2];
} else if (/(Linux)/.test(navigator.userAgent)) {
browser.os = "Linux";
browser.osversion = false;
}
答案 5 :(得分:0)
您始终可以使用原生javascript检测它... 查看这篇文章: Browser detection in JavaScript?