5

我有一个在 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]-->

第一个问题和主要问题是在尝试这个时它似乎不起作用。IE 开始发疯,脚本根本无法正常运行。如果我删除第一个脚本并保留第二个脚本,则它可以正常工作。似乎<!--[if !IE]><!-->无法正常工作。

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

4

1 回答 1

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]-->

在 JavaScript 中:

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

if (isIE8) {
  ...
}

if (isIE7) {
  ...
}
于 2012-08-19T08:37:15.290 回答