我在页面中添加了以下javascript,因为当文本很长时,某些下拉列表不会在IE中显示整个内容。
$(".dropdown").mousedown(function () {
if ($.browser.msie) {
//Do something
}
});
现在我已经解决了这个问题,我只是意识到IE9没有这个问题。那么如何从上述测试中排除IE9或更高版本?
感谢您的帮助
答案 0 :(得分:5)
if ($.browser.msie && parseInt($.browser.version, 10) < 9) {
// your code here for IE < 9
}
<强>更新强>
$.browser
已被弃用。
确保代码仅在IE
上运行的一种方法9,是通过使用条件语句。
<!--[if lt IE 9]>
<script src="path-to-js.js" type="text/javascript"></script>
<![endif]-->
答案 1 :(得分:2)
您可以在页面的HEAD中执行此操作:
<!--[if gt IE 8]>
<script src="myscript.js"></script>
<![endif]-->
答案 2 :(得分:2)
$.browser
有另一个名为version的属性,用它来检测正在使用的版本。
console.log($.browser.version)
你真的不应该使用$.browser
,它在下一版本的jQuery(1.9和2.0)中消失了。
答案 3 :(得分:0)
使用jQuery:
if ($.browser.msie && parseInt($.browser.version, 10) > 9) {
//exclude
}
这是纯Javascript中的相同方法:
<script>
function getIEVersion() {
var rv = -1; // Return value assumes failure.
if (navigator.appName == 'Microsoft Internet Explorer') {
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.test(ua) != null)
rv = parseFloat( RegExp.$1 );
}
return rv;
}
function checkVersion() {
var ver = getIEVersion();
if ( ver != -1 ) {
if (ver > 9.0) {
// do something
}
}
}
checkVersion();
</script>
但最好的方法是不使用UA嗅探,而是使用像Modernizr这样的功能检测。