我有一个在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及以下吗?
答案 0 :(得分: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) {
...
}