Что заставит Internet Explorer НЕ обрабатывать условные комментарии должным образом? - PullRequest
1 голос
/ 26 января 2012

Я пишу страницы JSP и использую Tomcat, и он должен работать для IE 7 в дополнение к Firefox и Chrome (нужны клиенты).

В моей программе я включаю оба фрагмента кода.Он работает должным образом для браузеров, отличных от IE.

Моя проблема в том, что КОД A не работает должным образом для IE, поскольку он обрабатывает его как комментарий, а не как условный комментарий, который он должен читать.Любая идея, почему это произойдет и как это исправить?

<script type="text/javascript">

 ...

 <!-- CODE A -->
 <!--[if IE]>
   url = "http://" + "..." + "&var=1";
 <![endif]-->

 <!-- CODE B -->
 <!--[if !IE]> -->
   url = "http://" + "..." + "&amp;var=1";
 <!-- <![endif]-->

 ...

</script>

1 Ответ

3 голосов
/ 26 января 2012

Условные комментарии HTML работают только в формате HTML.JavaScript это не HTML.Вместо этого используйте условные комментарии JS в JS:

var IE = /*@cc_on!@*/false;

(только IE будет интерпретировать !, что фактически делает его true)

Тогда вы можете использоватьэто выглядит следующим образом:

if (IE) {
    url = "http://" + "..." + "&var=1";
} else {
    url = "http://" + "..." + "&amp;var=1";
}

Однако в JS предпочтение следует отдавать обнаружению функций.

...