Как не загрузить скрипт в IE?
можно загрузить скрипт только в IE с помощью условных комментариев
<!--[if lte IE 7]>
<script type="text/javascript" src="somescript.js"></script>
<![endif]-->
но что, если я не хотите загрузить его в IE lte 7 (но все равно он нужен во всех других браузерах)?
какие простые решения?
P. S. У меня есть проблема с syntaxhighlighter - слишком много кода замедляет ИЕ7 и так как у меня мало времени, я решил просто отключить его в IE7 сейчас.
7 ответов
этот пост говорит, что вы можете использовать !
(Не) оператор like [if !IE]
<!--[if gte IE 7]>
<script type="text/javascript" src="somescript.js"></script>
<![endif]-->
<!--[if !IE]>
<script type="text/javascript" src="somescript.js"></script>
<![endif]-->
этот синтаксис работает хорошо (скрипт не будет прокомментирован в firefox, chrome и так далее):
<!--[if !IE]><!-->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<!--<![endif]-->
вы можете попробовать обнаружить серверную часть браузера,а затем повторить соответствующий скрипт.
ниже приведен пример упрощенного обнаружения браузера в PHP:
я использовал примеры, показанные здесь и в других местах, и очень неприятно видеть, сколько мест этот пример кода испорчен. Оказывается, ответ прост, 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 мобильный. Также можно указать версию. Например, меньше, чем IE 9 будет:<!--[if lt IE 9 ]>
для детального объяснения, проверите вне http://www.sitepoint.com/web-foundations/internet-explorer-conditional-comments/
поскольку условные операторы не работают в IE(10,11), и только IE(11) поддерживается Microsoft,и если кто-то все еще смотрит на запуск конкретного JavaScript IE,то этот код все еще работает в 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>