我如何检查用户浏览器是否为IE?我在这里有这个代码,但它没有用。
if($.browser.msie && $.browser.version <= 9)
{
alert('You Are Using An Outdated Browser! Switch To Chrome Or FireFox.');
}
答案 0 :(得分:16)
James Padolsey尝试this solution:
// ----------------------------------------------------------
// If you're not in IE (or IE version is less than 5) then:
// ie === undefined
// If you're in IE (>5) then you can determine which version:
// ie === 7; // IE7
// Thus, to detect IE:
// if (ie) {}
// And to detect the version:
// ie === 6 // IE6
// ie> 7 // IE8, IE9 ...
// ie <9 // Anything less than IE9
// ----------------------------------------------------------
var ie = (function(){
var undef, v = 3, div = document.createElement('div');
while (
div.innerHTML = '<!--[if gt IE '+(++v)+']><i></i><![endif]-->',
div.getElementsByTagName('i')[0]
);
return v> 4 ? v : undef;
}());
评论中还有其他有趣的解决方案。
答案 1 :(得分:11)
browser
已在1.9。中删除:
描述:包含useragent的标志,从navigator.userAgent读取。我们建议不要使用此属性;请尝试使用功能检测(请参阅jQuery.support)。 jQuery.browser可能会在未来的jQuery版本中移动到插件中。
答案 2 :(得分:6)
测试功能,而不是浏览器。如果您在评论中使用并要求FormData,请将支票更改为:
if ( !("FormData" in window) ) {
// Tell the user to use a better browser, or whatever
}
答案 3 :(得分:4)
MS推荐方式如何: http://msdn.microsoft.com/en-us/library/ms537509(v=vs.85).aspx
(当然,UserAgent可能会被欺骗......但是,如果有人欺骗他们的UserAgent,你真的关心他们在你的网站上看到了什么吗?)
function getInternetExplorerVersion()
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
{
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.exec(ua) != null) rv = parseFloat( RegExp.$1 );
}
return rv;
}
答案 4 :(得分:0)
只是一个提醒(甚至认为没有直接回答问题);浏览器检测的用户特征检测as opposed总是更好。
这就是Modernizr在那里的原因;
为什么要使用Modernizr?
利用酷炫的新网络技术非常有趣,直到您必须支持落后的浏览器。无论浏览器是否支持某项功能,Modernizr都可以让您轻松编写条件JavaScript和CSS来处理每种情况。它非常适合轻松进行渐进式增强。
所以你会像使用它一样;
Modernizr.canvas ? showGraph() : showTable();