IE9 сломал условные комментарии для Javascript? - PullRequest
1 голос
/ 30 марта 2011

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

Хорошо известно, что условные комментарии последовательно работают в качестве обходного пути длябраузеры IE.IE9, кажется, сломать это.Я тестировал скрипт для IE9 (в частности, document.createElement (""); сломался в IE9, но это уже другая проблема), и мне нужно было сделать обходной путь для IE 6 и 7. Поэтому я сделал это:

    <!--[if IE 6]>
    <script type="text/javascript">
        var ie6 = true;
    </script>
    <![endif]-->
    <!--[if IE 7]>
    <script type="text/javascript">
        var ie7 = true;
    </script>
    <![endif]-->

Оказывается, в IE9 оба - ie6 и ie7 -true. WTF.

Мой обходной путь состоял в том, чтобы изменить его на условный комментарий ниже, поменять логику и просто сделать, если (! ie9plus).

    <!--[if gte IE 9]>
    <script type="text/javascript">
        var ie9plus = true;
    </script>
    <![endif]-->

Есть ли лучший обходной путь?кричать и кричать на команду разработчиков IE за то, что она сломала такой важный аспект веб-отладки?

РЕДАКТИРОВАТЬ: После дальнейшего тестирования кажется, что это была проблема кодирования. Каким-то образом файл был закодирован неправильно, и этонарушил условный комментарий. Когда я изменил комментарий на IE9, я также исправил кодировку файла. IE9 фактически правильно поддерживает условные комментарии. Извините за FUD.

1 Ответ

1 голос
/ 30 марта 2011

В блоге IE говорится, что они все еще работают.Они, однако, привязаны к режиму рендеринга и имеют либо 7, либо 9 (первый в режиме просмотра в формате Compat).

Однако команда IE не рекомендует использовать условные комментарии, поскольку они учитываютбраузеры, вместо обнаружения функций.Тем не менее, это, вероятно, в основном рассмотрение Javascript.

...