IE11 удалил условную компиляцию javascript?
Я определяю версию движка IE Trident, используяусловная компиляция javascript:
var ieVersion = undefined;
/*@cc_on
ieVersion = Math.floor(@_jscript_version);
@*/
Это нормально работало для IE8, 9 и 10. В IE11 блок с условными комментариями не выполняется,если Я использую инструменты разработчика F12 для эмуляции IE10 (в этом случае он возвращает правильное значение, 11).
Это сбивает с толку, так какСтраница MSDN по условной компиляции указывает, что это относится к Internet Explorer 11, (ОБНОВЛЕНИЕ 2015-02-03: с тех пор эта страница была обновлена, чтобы явно указать, что ее содержаниене применить к IE11 в стандартном режиме.) Явене нашел никакой информации в интернете предположить, что IE11 не должен поддерживать условные комментарии.
У кого-нибудь есть информация по этому поводу? Кто-нибудь может воспроизвести это поведение в IE11?
Изменить: актуальность этого в IE служба поддержки. У меня есть веб-приложение, которое требует воспроизведения около 50 коротких (~ 1 с) аудиофайлов, которые должны воспроизводиться в (псевдо) случайном порядке и индивидуально после взаимодействия с пользователем. Проблемы разные:
audio
элементы (объявленные в HTML или в виде объектов JS). Все последующие аудиофайлы молча не загружаются и не воспроизводятся. (Каждому из 41 элемента может быть назначен свой источник, но каждое второе переназначение также завершается сбоем. Я хотел бы увидеть код, стоящий за этими ошибками ...)IE10 и IE11 "заикание» при воспроизведении коротких звуков: они играют доли секунды, затем делают паузу, затем продолжают. Эффект для конечного пользователя заключается в том, что звук неразборчив. (Theaudio
сpreload="auto"
и сообщить о ненулевом буфере.)Естественно естьНет практического способа обнаружить эти проблемы, следовательно, браузер обнаружит. Я обычно чувствую, что анализ пользовательского агента слишком рискован для производственного кода;@cc_on
техника казалась более надежной.
Мой обходной путь для IE9 заключается в сериализации состояния приложения дляsessionStorage
после 25-го звука перезагрузите страницу и выполните десериализацию.
В IE10 / 11 мой обходной путь заключается в воспроизведении последних 90% аудио при 0 громкости, что, похоже, заставляет IEна самом деле буферизировать файл