获取IE版本+将类添加到正文
Get IE Version + Add Class to body
我正试图找到人们正在使用的IE版本,并根据浏览器的不同向body标记添加一个类。
我的代码是
if (navigator.appName == "Microsoft Internet Explorer") {
//Set IE as true
ie = true;
//Create a user agent var
var ua = navigator.userAgent;
//Write a new regEx to find the version number
var re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");
//If the regEx through the userAgent is not null
if (re.exec(ua) != null) {
//Set the IE version
ieVersion = parseInt(RegExp.$1);
}
}
else {
ie = false;
}
function ieTag() {
if (ie == true) {
if (ieVersion == 7) {
$('body').addClass('IE7');
}
}
if (ie == true) {
if (ieVersion == 8) {
$('body').addClass('IE8');
}
}
if (ie == true) {
if (ieVersion == 9) {
$('body').addClass('IE9');
}
}
}
我用这个调用函数
<script type="text/javascript">
$(document).ready(function () {
//IE Version Control
ieTag();
});
</script>
但我只是出于某种原因才拿起IE 9,我以前有过这个脚本,所以我真的不明白哪里出了问题!!!
我甚至尝试过使用这个脚本
function ieTag() {
if (ie == true) {
$('body').addClass('IE' + ieVersion);
}
}
但仍然只收到IE9
我使用IE(和开发工具来更改版本(这两个脚本以前都使用过)
这可能不是您想要的答案,但它似乎是最简单的解决方案:
<!--[if lt IE 7]> <body class="ie6"> <![endif]-->
<!--[if IE 7]> <body class="ie7"> <![endif]-->
<!--[if IE 8]> <body class="ie8"> <![endif]-->
<!--[if IE 9]> <body class="ie9"> <![endif]-->
<!--[if gt IE 9]> <body class="ie10+"> <![endif]-->
<!--[if !IE]><!--> <body> <!--<![endif]-->
当然是在HTML中添加的,您的body标记应该从这里开始。
您可以使用条件注释,这样它就不会影响其他浏览器。
<!--[if IE 6]>
<script>
$(document).ready(function(){
$("body").addClass("ie-6");
});
</script>
<![endif]-->
<!--[if IE 7]>
<script>
$(document).ready(function(){
$("body").addClass("ie-7");
});
</script>
<![endif]-->
<!--[if IE 8]>
<script>
$(document).ready(function(){
$("body").addClass("ie-8");
});
</script>
<![endif]-->
<!--[if IE 9]>
<script>
$(document).ready(function(){
$("body").addClass("ie-9");
});
</script>
<![endif]-->
您不需要JavaScript。
<!--[if IE 9]>
<body class='ie9'>
<![endif]-->
<!--[if IE 8]>
<body class='ie8'>
<![endif]-->
等等。对于普通浏览器:
<!--[if IE]><!-->
<body class='normal'>
<!--<![endif]-->
问题中的js在IE 7和IE 8中失败的原因是我包含了使用application/javascript而不是text/javascript的脚本,
原因是不适用于application/javascript,因为这是一种新的包含脚本的方式,只有现代浏览器支持,而旧浏览器不支持这种方法,因此IE 7&8次失败。
如果你有jQuery,你可以像这个一样将ie类添加到主体中
$(function(){
if ($.browser.msie && $.browser.version == 8) {
$('body').addClass('ie8');
}
});
相关文章:
- 正在尝试将标题标记添加到mailto链接,正文中包含URL
- 仅将元素附加到页面的正文标签,而不添加到iframe facebook、google+、twister
- 通过在 JavaScript 中使用正文标签的 ID 向
标签添加文本
- 获取IE版本+将类添加到正文
- jQuery 不将类添加到正文
- 添加事件处理程序以获取按钮单击LeadPage,我可以在其中对正文进行编码
- 页面加载后向<正文>添加元素时出现问题
- 如何在正文元素之前添加脚本
- 使用Mailto链接,如果可能的话,我可以在Outlook邮件正文中添加当前页面吗?在 asp.net
- 如何使用 JavaScript 在电子邮件正文中添加 HTML
- 将类添加到动态元素上的正文,在页面上的任意位置再次单击后删除
- 为什么鼠标光标和红线在将缩放 0.5 添加到正文标签时位置不同
- 使用 jQuery 将 CSS 添加到正文中的 head 标签
- 溢出隐藏添加在删除滚动条的正文标签中
- Javascript在mailto正文中添加换行符
- 如何将相同的页眉添加到每一页并将正文包裹在其中
- jQuery'css不是't向正文添加背景属性
- 使用chrome扩展,如何将html添加到页面的正文标记下方
- 正在尝试使用内容标题将锚链接添加到内容正文
- 如何在HTML mailto:主题和正文中添加页面URL