Как не загрузить скрипт в IE? - PullRequest
10 голосов
/ 31 марта 2011

Возможно загрузить скрипт только в IE с условными комментариями

<!--[if lte IE 7]>
    <script type="text/javascript" src="somescript.js"></script>
<![endif]-->

но что, если я не хочу загрузить его в IE lte 7 (но все еще нужен во всех других браузерах)?

Какие-нибудь простые решения?

P.S. У меня проблема с SyntaxHighlighter - слишком много кода замедляет работу IE7, и, поскольку у меня мало времени, я решил просто отключить его в IE7.

Ответы [ 7 ]

18 голосов
/ 31 марта 2011

В этом сообщении говорится, что вы можете использовать оператор ! (NOT), например [if !IE]

5 голосов
/ 31 марта 2011
<![if !IE]>
    <script type="text/javascript" src="somescript.js"></script>
<![endif]>
4 голосов
/ 31 марта 2011
<!--[if gte IE 7]>
    <script type="text/javascript" src="somescript.js"></script>
<![endif]-->
<!--[if !IE]>
    <script type="text/javascript" src="somescript.js"></script>
<![endif]-->
3 голосов
/ 29 апреля 2013

Этот синтаксис работает хорошо (скрипт не будет комментироваться в Firefox, Chrome и т. Д.):

<!--[if !IE]><!-->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<!--<![endif]-->
1 голос
/ 31 марта 2011

Вы можете попытаться обнаружить серверную часть браузера и затем отобразить соответствующий скрипт:

Ниже приведен пример упрощенного определения браузера в PHP:

http://www.php-scripts.com/20050912/12/

0 голосов
/ 14 августа 2018

Так как условные операторы не работают в IE (10,11) и Microsoft поддерживает только IE (11), и если кто-то все еще смотрит на выполнение специфичного для IE JavaScript, то этот код все еще работает, проверенный в IE (11), ибраузеры не IE (Chrome, Firefox, Edge).

<script type="text/javascript">
    if(/MSIE \d|Trident.*rv:/.test(navigator.userAgent)) 
        {document.write('<script src="../nolng/js/ex1IE.js"><\/script>');}
    else 
        {document.write('<script src="../nolng/js/ex1.js"><\/script>'); // for Chrome,Firefox,Edge}
</script>
0 голосов
/ 22 июня 2015

Я использовал примеры, показанные здесь и в других местах, и очень печально видеть, как много мест испортил этот пример кода.Оказывается, ответ прост, IE имеет специальные «условные выражения», такие как [if IE], но другим браузерам нужны комментарии для работы с «условными условностями».

Например, так как JQuery 2 не работает с IE8, вы можете сделать что-то вроде этого

<!--[if IE ]>  (following is only visible to IE)
    <script src="./js/lib/jquery-1.6.1.min.js"></script>
<![endif]-->
<!--[if !IE]>-->  (extra comment - only visible to non-IE)
    <script src="./js/lib/jquery-2.1.1.min.js"></script>
    <script src="./js/lib/jquery.mobile-1.4.5.min.js"></script>
<!--<![endif]-->

Я проверил вышеупомянутые работы в Firefox, Chrome, IE8, Dolphin Mobile и Chrome Mobile.Вы также можете указать версию.Например, меньше чем IE 9 будет: <!--[if lt IE 9 ]>

Для подробного объяснения, проверьте http://www.sitepoint.com/web-foundations/internet-explorer-conditional-comments/

...