当检测到用户是 ie8的时候弹窗显示不支持,如何做比较好?

谢谢指教。前端不太懂。

我知道可以用 js 检测浏览器版本。这样靠谱吗?有什么比较成熟的方案(比如 youtube 那样是怎么做到的?)

阅读 5.5k
3 个回答

git

自己看了一下几个方法。发现要做 ie 检测的话这个方法是最通用的。

在苹果看来,还可以进一步将版本号提取成参数,就能生成一个通用的检测IE版本的函数了:

var isIE = function(ver){
    var b = document.createElement('b')
    b.innerHTML = '<!--[if IE ' + ver + ']><i></i><![endif]-->'
    return b.getElementsByTagName('i').length === 1
}
if(isIE(6)){
    // IE 6
}
// ...
if(isIE(9)){
    // IE 9
}

看本站<!--[if lt IE 9]> <link rel="stylesheet" href="//static.segmentfault.com/global/css/ie.css?" /> <script src="//static.segmentfault.com/global/js/html5shiv.js?"></script> <script src="//static.segmentfault.com/global/js/respond.js?"></script> <![endif]-->

最简单的方法就是使用IE hack条件注释来判断

html<!--[if IE 9]><html class="ie8"><![endif]-->
<!--[if IE 9]><html class="ie9"><![endif]-->
javascript//javascript

if (document.documentElement.classList.contains('ie8')) {
    // do some stuff
}
javascript//jQuery

$('html').is('ie8');
-----or-----
$('html').hasClass('.ie8');

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题