针对IE 8及以下版本
Targeting IE 8 and Below?
我有一个在IE 9+和所有其他浏览器中运行良好的脚本。但在IE 8或更低版本中存在视觉错误。我可以通过更改IE 8及以下版本的一些动画效果来修复这个视觉错误。要做到这一点,我需要在我的页面上有两个脚本。一个用于IE 9+、Firefox、Chrome、Safari,另一个用于IE8及以下版本。
以下是我尝试过的:
// First the Script that runs for non-IE browsers.
<!--[if !IE]>
<script type="text/javascript">
// Script that runs
</script>
<![endif]-->
// Now for the Script for IE 8
<!--[if lt IE 9]>
<script type="text/javascript">
// Script that runs
</script>
<![endif]-->
第一个问题,也是最主要的一个问题是,当尝试这样做时,它似乎不起作用。IE开始表现得很疯狂,脚本根本无法正常运行。如果我删除第一个脚本,留下第二个脚本,它就可以正常工作。<!--[if !IE]><!-->
似乎工作不正常。
第二个问题:使用<!--[if !IE]><!-->
是否只能针对IE 8及以下版本?
试着用HTML5 Boilerplate的方式来做。然后只在JS和CSS中按类定位IE版本。
将打开的<html>
标签替换为以下内容。根据您的需求进行调整:
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
在JavaScript中:
var isIE8 = document.getElementsByClassName('lt-ie9').length;
var isIE7 = document.getElementsByClassName('lt-ie8').length;
if (isIE8) {
...
}
if (isIE7) {
...
}
相关文章:
- 如何确定相对较新版本的IE的高度和宽度(IE8不喜欢从JavaScript设置这种样式吗?
- javascript网格未在IE 8及以上版本中显示
- 是否可以使用Javascript检测所有版本的IE?怎样
- 针对IE 8及以下版本
- 图像加载不适用于 IE 8 或更低版本
- IE版本检查停止工作
- 如果用户的浏览器早于以下版本,则显示一条消息:IE 10、Firefox 39、Chrome 39、Opera 8
- 使用less.js检测旧版本的ie,然后使用filter
- jsPDF在任何IE版本中显示iframe
- fadeIn动画无法在IE中工作(所有版本)
- 获取IE版本+将类添加到正文
- 在Facebook图形中,使用Javascript的IE(所有版本)不支持API调用跨浏览器调用
- 什么版本的IE支持安全性=“;受限制的“;iframes
- 使用JQuery和IE在悬停时高亮显示表行-所有版本
- 如何在旧 IE 版本中将捕获组与 String.split 一起使用
- 对 IE 8 及更低版本的 NVD3 支持
- 什么是 IE 版本的网络驱动程序.Capabilities.firefox().
- 旧版本IE上的Jquery问题
- 某些版本IE中的JavaScript重定向问题
- 旧版本IE中JSON对象的问题