aliencash
@aliencash
Партизан

Определение поддержки webp — IE11 ругается на стрелочную функцию. Как исправить?

Не специалист в js, нашел код, который определяет поддержу браузером webp.
function testWebP() {
    return new Promise(res => {
        const webP = new Image();
        webP.src = 'data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA';
        webP.onload = webP.onerror = function () {
            res(webP.height === 2);
        };        
    })
};

IE11 webp очевидно не поддерживает, но он и не поддерживает стрелочную функцию, потому в консоли ошибка синтаксиса. Как можно изменить код, так, чтобы он нормально работал в старых браузерах и ie?

UPD: Ребята, спасибо, решил свой вопрос. Вот такой код работает:
function testWebP(callback) {
	var webP = new Image();
	webP.onload = webP.onerror = function() {
		callback(webP.height == 2);
	};
	webP.src = "data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA";
}


Запуск:
testWebP(function(support) {
           <ваш код. переменная support может быть true если webp поддерживается и false если нет>
});
  • Вопрос задан
  • 191 просмотр
Пригласить эксперта
Ответы на вопрос 3
l3ftoverz
@l3ftoverz Куратор тега JavaScript
Люблю Финский металкор
1. Использовать транспиляторы из новых ES стандартов в более старые, которые понимает синий друг.
2. Сразу писать гавнокод.
3. Не слушать синего друга и его пользователей.
Ответ написан
yarkov
@yarkov Куратор тега JavaScript
https://github.com/yarkovaleksei/toster-extension
Заменить стрелочную функцию на обычную
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы