Требуется условный оператор для загрузки скрипта, только если не IE8 или раньше, а не мобильное устройство - PullRequest
1 голос
/ 14 декабря 2011

У меня есть ссылка на скрипт в разделе заголовка моей страницы в традиционном формате, т.е.

<script src="scripts/scriptname.js" type="text/javascript"></script>

Я бы хотел запретить загрузку этого скрипта в IE8 и более ранних версиях, а также на iPhone / iPad и мобильных устройствах в целом.

У меня есть это заявление для предотвращения его запуска в IE8, но я не уверен, как адаптировать его для включения более ранних версий IE, и я также не уверен насчет мобильных устройств:

<!--[if !IE 8]><!-->
    <script src="scripts/scriptname.js" type="text/javascript"></script>
<!--<![endif]-->

Может ли кто-нибудь помочь с этим?

Спасибо

Ник

1 Ответ

5 голосов
/ 14 декабря 2011
<!--[if lt IE 9]>
     <script src="scripts/scriptname.js" type="text/javascript"></script>
<![endif]-->

это будет включать в себя блок для Internet Explorer 8 и ниже (lt = меньше чем).

Но - если вам придется адаптировать сценарий только для мобильных устройств, я думаю, что решение для JavaScriptсамый лучшийПроверьте пользовательский агент по объекту навигатора для браузера и устройства, например:

if( (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || ... )

Включить все мобильные устройства может быть слишком много.Переключение по размеру экрана - хороший способ:

if ( screen.width <= 699 ) {
     // your script
}

с определением браузера для поиска MSIE, но не 9.0:

if ( screen.width <= 699 || navigator.userAgent.match(/MSIE\s(?!9.0)/) ) {
     // your script
}
...