Если браузер Internet Explorer: вместо этого запустите альтернативный скрипт - PullRequest
26 голосов
/ 10 декабря 2010

Я использую скрипт карусели изображений, который довольно тяжёл в браузере. Он отлично работает в Opera и Chrome, наполовину приличный в FF и абсолютно ломает мои шары в IE. Поэтому я хотел бы дать пользователям IE альтернативу простому HTML без каких-либо действий / JS.

Скрипт не использует MT или jQuery и его как 380 строк JS. Можно ли дать пользователям IE простую альтернативу HTML?

var browserName=navigator.appName; if (browserName=="Microsoft Internet Explorer") { // what command can i use? }

Ответы [ 11 ]

22 голосов
/ 10 декабря 2010

Эта статья довольно объяснительная: http://msdn.microsoft.com/en-us/library/ms537509%28v=vs.85%29.aspx.

Если ваш JS ненавязчив, вы можете просто использовать:

<![if !IE]>
   <script src...
<![endif]>
20 голосов
/ 10 декабря 2010

Вы можете сделать что-то вроде этого, чтобы включить специфичный для IE javascript:

<!--[IF IE]>
    <script type="text/javascript">
        // IE stuff
    </script>
<![endif]-->
12 голосов
/ 25 августа 2014

Стандартные условия IE10 + не работают из-за смены двигателя или по каким-то другим причинам, потому что, знаете, это MSIE.Но для IE10 + вам нужно запустить что-то подобное в своих скриптах

if (!!navigator.userAgent.match(/Trident\/7\./)){
//do stuff for IE.
}
12 голосов
/ 10 декабря 2010

Вы определяете логическое значение со значением по умолчанию true, а затем внутри условного комментария IE задаете значение false и используете его значение, чтобы определить, должен ли выполняться расширенный код. Что-то вроде:

<script type="text/javascript">var runFancy = true;</script>
<!--[if IE]>
<script type="text/javascript">
    runFancy = false;
    //any other IE specific stuff here
</script>
<![endif]-->
<script type="text/javascript">
    if (runFancy) {
         //do your code that works with sane browsers
    }
</script>
4 голосов
/ 09 июля 2013

var browserName = navigator.appName;if (browserName == "Microsoft Internet Explorer") {document.write ("Ваш HTML для IE")}

2 голосов
/ 11 декабря 2010

Вот скрипт, который я использовал, и он работает как шарм.Я использовал логический метод, предложенный Эндером, поскольку другие, использующие только скрипт, специфичный для IE, добавляют что-то в IE, но не вынимают исходный код.

    <script>runFancy = true;</script>
<!--[if IE]>
<script type="text/javascript">
    runFancy = false;
 </script> // <div>The HTML version for IE went here</div>
<![endif]-->

    // Below is the script used for all other browsers:
    <script src="accmenu/acac1.js" charset="utf-8" type="text/javascript"></script><script>ac1init_doc('',0)</script> 
1 голос
/ 26 июля 2017

Попробуйте это: systemLanguage и userLanguage не определены во всех браузерах.

if(navigator.userLanguage !== "undefined" && navigator.systemLanguage !== "undefined" && navigator.userAgent.match(/trident/i)) {
    alert("hello explorer i catch U :D")
  }
0 голосов
/ 03 сентября 2015

Протестируйте во всех браузерах:

<![if !IE]><script type="text/javascript">BROWSERIE = false;</script><![endif]>
<!--[if IE]><script type="text/javascript">BROWSERIE = true;</script><![endif]-->

Первый условный комментарий работает в хороших браузерах, второй - в IE. Это глобальный вар. Затем вы можете получить к нему доступ из любой части или с любого JS, включенного в вашу страницу, а затем протестировать его, например:

console.log('isIE = ' + BROWSERIE);
console.log(typeof BROWSERIE);
if(BROWSERIE) $('.modal').removeClass('fade'); // for example, if `fade` causes an error in IE.
0 голосов
/ 31 марта 2015

Смотрите этот скрипт в архиве разработчика Microsoft: https://msdn.microsoft.com/en-us/library/ms537509%28v=vs.85%29.aspx

Я использовал этот скрипт во многих проектах, проблем не было.

0 голосов
/ 11 января 2013

Обратите внимание, что вы также можете определить в чистом js, в каком браузере выполняется ваш скрипт через: window.navigator.userAgent

Однако это не рекомендуемый способ, так как он настраивается в настройках браузера.Более подробная информация доступна там: https://developer.mozilla.org/fr/docs/DOM/window.navigator.userAgent

...