Условные директивы для, если IE> = 9 или не IE

#javascript #jquery #html #internet-explorer

#javascript #jquery #HTML #internet-explorer

Вопрос:

Я начинаю новый проект и, к сожалению, мне приходится поддерживать IE7 и IE9. В конце концов я смогу удалить поддержку IE7, но хотел бы получить плавный способ ее удаления.

По сути, там, где это возможно, я хочу использовать последние версии библиотек.

 <!--[if lt IE 9]>
    <script src="https://raw.githubusercontent.com/aFarkas/html5shiv/master/dist/html5shiv.min.js"></script>
    <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<![endif]-->
<!--[if gte IE 9]>
    <script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
<![endif]-->
<!--[if !IE]><!-->
    <script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
<!--<![endif]-->
<!--[if lt IE 8]>
    <script src="http://cdnjs.cloudflare.com/ajax/libs/json3/3.3.1/json3.min.js"></script>
<![endif]-->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.17/angular.min.js"></script>
<!--[if lt IE 9]>
    <script src="local/angularjs-attribute-polyfill.js"></script>
<![endif]-->
  

Как вы можете видеть, у меня есть библиотека jQuery дважды, один раз для gte IE9 и один раз для not equal to IE для другого browsers…is есть хороший способ объединить их?

Ответ №1:

Вы можете использовать

 <!--[if gte IE 9]><!-->
    <script src="...jquery-2.1.1.min.js"></script>
<!--<![endif]-->
  

Этот условный комментарий позволит включить скрипт, если используется IE9 или выше… и браузеры, отличные от IE, в любом случае проигнорируют комментарий и просто включат скрипт, без вопросов.

Комментарии:

1. Просто обратите внимание, что условные комментарии не работают в IE11

2. @crisbeto Это нормально, потому что IE11 ведет себя как «не IE» в отношении условных комментариев 😉

3. К вашему сведению, в блоге jQuery описано, как это сделать: blog.jquery.com/2013/03/01/jquery-2-0-beta-2-released