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

Сложности проверки версий

Случайно обратил внимание какое-то время назад, что у меня на сайте почему-то перестало проигрываться аудио в формате MP3 в «Опере», моём основном браузере. Никак не доходили руки разобраться, но в эти длинные праздники я всё-таки докопался до сути. Суть оказалось смешной до нелепого.

Дело в том, что в движке, который я использую для своего дневника, для проигрывания аудио используется библиотека «Жуэль», а её текущая версия, в свою очередь использует старую версию библиотеки «howler.js», в которой есть вот такой код:

self._navigator = (typeof window !== 'undefined' && window.navigator) ? window.navigator : null;
var checkOpera = self._navigator && self._navigator.userAgent.match(/OPR\/([0-6].)/g);
var isOldOpera = (checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33);

Проблема в регулярном выражении OPR\/([0-6].) и в версии «Оперы». Недавно версия перевалила за 100 и эта регулярка, вместо корректного номера, стала возвращать «10».

Из-за этого третья строка считает мою «Оперу» слишком старой (потому что 10 меньше 33), чтобы поддерживать проигрывание файлов MP3.

Заменил у себя на сайте howler.js на актуальную версию и всё заработало. Заодно предложил патч в «Жуэль», надеюсь примут оперативно.