为IE8选择CSS可以在模拟器中运行,但不能直接在IE8上运行

时间:2015-05-27 18:15:21

标签: javascript jquery html css internet-explorer-8

我正在使用jQuery检测浏览器版本并根据浏览器版本设置CSS。

if ( getBrowserVersion() == '8' ) {
    $('head').append('<link href="/css/MSIE8.css" rel="stylesheet" id="MSIECSS8" />');
}

function getBrowserVersion() {
    var ua = navigator.userAgent, tem,
        M = ua.match(/(opera|chrome|safari|firefox|msie|wow64|trident(?=\/))\/?\s*(\d+)/i) || [];
    if ( /trident/i.test( M[1] ) ) {
        tem = /\brv[ :]+(\d+)/g.exec(ua) || [];
        return 'IE ' + ( tem[1] || '' );
    }
}

当我使用F12开发人员工具在IE11中模拟IE8时,这是有效的。但是当我直接在IE8上运行网站时,它并没有选择CSS。有关如何使这项工作的任何想法?感谢您的帮助!

1 个答案:

答案 0 :(得分:6)

除非绝对必要,否则您应该避免所有用户代理嗅探。在这种情况下,没有必要。如果您希望为Internet Explorer 8加载自定义样式表,请使用浏览器本身提供的功能,即Conditional Comments

[start:stop:step]

这将在Internet Explorer中解析 ,10之前的版本。只有在Internet Explorer 8中才会导致在文档中添加MSIE8.css样式表。

一般来说,除此之外的任何事情都会使您的项目不必要地复杂化。