针对IE 8及以下版本?

L84*_*L84 5 javascript internet-explorer internet-explorer-8

我有一个在IE 9+和所有其他浏览器中运行良好的脚本.但在IE 8或更低版本中存在视觉错误.我可以通过更改IE 8及更低版本的一些动画效果来修复此视觉错误.要做到这一点,我需要在我的页面上有两个脚本.一个用于IE 9 +,Firefox,Chrome,Safari,另一个用于IE 8及更低版本.

这是我尝试过的:

// 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]-->
Run Code Online (Sandbox Code Playgroud)

第一个问题,主要问题是在尝试时它似乎不起作用.IE开始表现得很疯狂,脚本根本不起作用.如果我删除第一个脚本并离开第二个脚本它没有问题.看起来似乎<!--[if !IE]><!-->没有正常工作.

第二个问题:使用<!--[if !IE]><!-->我可以只针对IE 8及以下版本?

elc*_*nrs 5

尝试使用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]-->
Run Code Online (Sandbox Code Playgroud)

在JavaScript中:

var isIE8 = document.getElementsByClassName('lt-ie9').length;
var isIE7 = document.getElementsByClassName('lt-ie8').length;

if (isIE8) {
  ...
}

if (isIE7) {
  ...
}
Run Code Online (Sandbox Code Playgroud)