Заменить скрипт, если смотреть в IE9?

Насколько легко было бы запустить другой javascript в зависимости от браузера пользователя?

Например, если кто-то посещает сайт с IE9, я бы хотел, чтобы он запускал скрипт, отличный от того, который он обычно запускал бы для пользователей Chrome.

4 ответа

Решение

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

<!--[if lte IE 6]>
    <script>alert('lte stands for less than or equal to')</script>
<![endif]-->

<!--[if lt IE 7]>
    <script>alert('lt stands for less than')</script>
<![endif]-->

<!--[if gte IE 9]>
    <script>alert('gte stands for greater than or equal to')</script>
<![endif]-->

и т.п.

Существуют различные методы обнаружения браузера. Вы можете попробовать обнаружить браузер (самостоятельно, изучив navigator.userAgent свойство), или вы можете использовать методы, доступные практически в любой среде Javascript. Например:

  1. jQuery.browser
  2. Обнаружение браузера с помощью Prototype JS

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

- Павел

Вы можете использовать условные комментарии в HTML.

<!--[if IE]>
   <script src="ie_only.js"></script>
<![endif]-->

Это также может быть использовано для внешних таблиц стилей

больше информации об этом посте http://css-tricks.com/how-to-create-an-ie-only-stylesheet/

Могу ли я рекомендовать функцию обнаружения вместо

if (someIEAPI) {
    // ie code
} else if (someChromeAPI) {
    // chrome code
}

Этот код более надежен, и если Firefox или Opera поддерживает один из API, вам все равно не нужно проверять их браузеры.

Кроме того, у браузеров есть привычка лгать вам и притворяться, что все в порядке.

Другие вопросы по тегам