针对IE 8及以下版本

Targeting IE 8 and Below?

本文关键字:版本 IE 针对      更新时间:2023-09-26

我有一个在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) {
  ...
}