Как включить удаленный файл JavaScript условно? - PullRequest
21 голосов
/ 10 ноября 2011

У меня есть HTML-страница.

При этом, по словам браузера, мне нужно включить отдельный файл JavaScript.

Как это возможно?

<script type="text/javascript">
if(navigator.appName == 'Microsoft Internet Explorer')
{
//here i need to include one.js
}
else
{
//here i need to include two.js
}

</script>

Ответы [ 8 ]

19 голосов
/ 10 ноября 2011

И, наконец, если вы уже используете JQuery в своем проекте и просто оставили для него тег, вы можете использовать $. GetScript

14 голосов
/ 10 ноября 2011

Вот один способ, возможно, не самый лучший.

<script type="text/javascript">
if(navigator.appName == 'Microsoft Internet Explorer')
{
    document.write("<script tag here>");
}
else
{
    document.write("<other script tag here>");
}

6 голосов
/ 10 ноября 2011

Используя условные комментарии вы создаете HTML только в IE.

<!--[if IE]>
 <script src='iescript.js'></script>
<![endif]-->
4 голосов
/ 10 ноября 2011
<script type="text/javascript">
var src = navigator.appName == "Microsoft Internet Explorer" ? "one.js" : "two.js";

var script = document.createElement("script");
script.setAttribute("src", src);
document.getElementsByTagName("head")[0].appendChild(script);
</script>

Конечно, вы также можете разделить троичный оператор выше по своему вкусу ...

2 голосов
/ 10 ноября 2011

Если вы используете jQuery, вы можете использовать getScript ()

http://api.jquery.com/jQuery.getScript/

0 голосов
/ 19 сентября 2015
<script type="text/javascript">
  if(condition===true){
    document.write(unescape(
      '%3Cscript src="file1.js"%3E%3C/script%3E'+
      '%3Cscript src="file2.js"%3E%3C/script%3E'
    ));
  }
</script>

Просто и легко.1 строка на файл JS.

0 голосов
/ 10 ноября 2011

Я рекомендую вам использовать LAB.js или YepNope (загрузчики скриптов). Оба прилагают большие усилия для загрузки внешних скриптов наилучшим способом.

Например, используя YepNope с двумя условными нагрузками:

var agent = navigator.userAgent;
yepnope({
    test : /(msie) ([\w.]+)/.test(agent), // internet explorer
    yep  : 'ie.js',
    nope : 'other-script-if-you-want.js'
});
yepnope({
    test : /(mozilla)(?:.*? rv:([\w.]+))?/.test(agent), // firefox
    yep  : 'firefox.js'
});
0 голосов
/ 10 ноября 2011

вы можете использовать условные комментарии, как указано в http://jagregory.com/writings/using-ies-conditional-comments-for-targeted-javascript/

, например, если вы хотите настроить таргетинг на версии IE 7 и ниже, вы можете:

<!--[if lt IE 7]>
<script type="text/javascript" src="/js/one.js"></script>
<![endif]-->
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...