В режиме эмуляции IE 8 не подгружаются полифилы с Polyfill.io

уважаемые участники сообщества stackoverflow.com!

У меня будет небольшой вопрос к Вам. Кто встречался с подобной проблемой, поделитесь, пожалуйста, как Вы вышли из данной ситуации.

С уважением, Сирота Дмитрий

Итак: есть простой код, с помощью которого я подключаю к своей странице скрипты, привожу его ниже. (Касательно проета, всё это делается на html-странице, свёрстанной для личного удовольствия). Среди скриптов есть два полифила с ресурса Polyfill.io. Проблема: в некоторых случаях, например, при использовании эмуляции IE 8 в IE 11 на ОС Windows 7 подгружаются практически пустые файлы без полифилов,. Возможно, ситуация связана с тем, как сервис определяет браузер. Но если в том же режиме эмуляции в адресную строку вставить сформированную на Polyfill.io ссылку, то с большой вероятностью браузер предложит загрузить на компьютер файл со всем необходимым кодом. Вопрос: это скорее баг Polyfill.io, или я как-то неправильно подключаю скрипты к странице? Если проблема в моём коде, прошу Вас привести свой рабочий. Если проблема в IE, то здесь вряд ли что-то уже поможет;)

Надеюсь на Ваше понимание и Благодарю Вас за уделённое моей проблеме время

P.S. Про Promise-ы знаю, про babel слышал, core.js видел. Интересует именно вопрос с Polyfill.io

P.P.S. Вот код:

function appendScript(source, deferFlag) {
    var script = document.createElement('script');
    script.src = source;
    if(deferFlag) {
        script.setAttribute('defer', 'defer');
    }
    try {
        document.body.appendChild(script);
    } catch(error) {
        console.log('Error: ' + error.name + ": error in script '" + script.src + "'");
    }
    //
    console.log("script " + script.src + " is added");
    //
    return script;
}
//
function loadScript(src, deferFlag, callback) {
    var script = appendScript(src, deferFlag);
    script.onload = new function() {
        callback(script);
    }
}
//
//Appending scripts to web-page, to body
function loadPage() {
    try {

    loadScript("https://polyfill.io/v3/polyfill.min.js?features=Object.defineProperties%2CObject.defineProperty", false, function(script) {
        console.log("script " + script.src + " is loaded");
        //
        loadScript("https://polyfill.io/v3/polyfill.js?features=document.getElementsByClassName%2CElement.prototype.dataset", false, function(script) {
            console.log("script " + script.src + " is loaded");
            //polyfill #1
            appendScript("js/polyfill_isInteger.js", false);
            appendScript("js/script_p1.js", false);
            //polyfill #2
            appendScript("js/polyfill_sayPhrase.js", false);
            appendScript("js/script_p2.js", false);
            //polyfill #3
            loadScript("js/polyfill_Input_month.js", false, function(script) {
                console.log('script "' + script.src + '" is loaded');
                //
                setTimeout(function() {
                    appendScript("js/script_p3.js", true);
                }, 100);
            });
            //tabs
            appendScript("js/script_tabs.js", false);
            //other scripts
            //...
        });
    });

    } catch(error) {
        console.log('Error: ' + error.name + ": " + error.message);
    }
}

Ответы (1 шт):

Автор решения: Stepan Kasyanenko

polyfill.io узнает о вашем браузере по хедеру user-agent, скорее всего вы не правильно выставляете эмуляцию. Надо поставить user-agent тоже в ie8 и тогда polyfill.io отдает полифилы.

введите сюда описание изображения

→ Ссылка