【发布时间】:2014-04-04 15:17:14
【问题描述】:
我有以下 javascript:
<script type="text/javascript">
var isMobile = {
Android: function () {
return navigator.userAgent.match(/Android/i);
},
BlackBerry: function () {
return navigator.userAgent.match(/BlackBerry/i);
},
iOS: function () {
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
},
Opera: function () {
return navigator.userAgent.match(/Opera Mini/i);
},
Windows: function () {
return navigator.userAgent.match(/IEMobile/i);
},
any: function () {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
}
};
navigator.sayswho = (function () {
var ua = navigator.userAgent, tem,
M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*([\d\.]+)/i) || [];
if (/trident/i.test(M[1])) {
tem = /\brv[ :]+(\d+(\.\d+)?)/g.exec(ua) || [];
return 'IE ' + (tem[1] || '');
}
M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];
if ((tem = ua.match(/version\/([\.\d]+)/i)) != null) M[2] = tem[1];
return M.join(' ');
})();
var browserversion1 = navigator.sayswho.split(" ");
var browserversion2 = browserversion1[1].split(".")[0].split(",");
var isIeLessThan10 = (browserversion1[0] == "IE" || browserversion1[0] == "MSIE") && browserversion2[0] < 10
//alert(isIeLessThan10);
if (!isMobile.any()) {
if (isIeLessThan10) {
alert("IE<10");
document.write('<link rel="stylesheet" href="theStyles/defaultStyle_ie.css" type="text/css" charset="utf-8" />');
document.write('<link rel="stylesheet" href="theStyles/captionStyle_ie.css" type="text/css" charset="utf-8" />');
}
else {
alert("IE>=10 || !IE");
document.write('<link rel="stylesheet" href="theStyles/defaultStyle.css" type="text/css" charset="utf-8" />');
document.write('<link rel="stylesheet" href="theStyles/captionStyle.css" type="text/css" charset="utf-8" />');
}
}
else {
alert("mobile");
document.write('<link rel="stylesheet" href="theStyles/defaultStyle_mobile.css" type="text/css" charset="utf-8" />');
document.write('<link rel="stylesheet" href="theStyles/captionStyle_mobile.css" type="text/css" charset="utf-8" />');
}
</script>
上面的脚本检查浏览器是移动浏览器还是全功能浏览器。如果它是全功能浏览器,则检查 IE 版本是否小于 10,如果是则加载 defaultStyle_ie.css 样式表,否则如果是 IE10 或更高版本或任何其他浏览器加载 defaultStyle.css 样式表。在 FireFox、Chrome 和 IE8 中一切正常。当我在 IE10 中加载页面时,正在加载 IE8 版本的样式表。我该如何解决?
【问题讨论】:
-
条件cmets而不是js怎么样?
-
我还能用它来验证移动浏览器吗?我正在寻找加载三种不同类型的样式表,
1. for less than IE82. IE10 and higher OR any other browser (FF, Chrome, etc.)3. Mobile -
@skip405 据我所知,较新版本的 IE 不支持条件 cmets(实际上,我认为 IE10 已删除支持)。
-
这就是为什么他们应该开始让用户代理字符串再次真正有用了;在我的 IE11 中,它甚至不再说 MSIE
Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko -
@user3326071 查看我的答案以获取示例
标签: javascript html css internet-explorer-8 internet-explorer-10