IE 11 не загружает JS-скрипт (удаляет его из списка скриптов в инструментах разработчика) - PullRequest
0 голосов
/ 04 ноября 2019

(все остальные браузеры, включая Edge работают нормально)

У меня есть скрипт A.js и B.js.

Они оба загружены:

<script src="/scripts/A.js?20191031012417" type="text/javascript"></script>
<script src="/scripts/B.js?20191031011942" type="text/javascript"></script>

(Я пробовал также без строки запроса даты)

Однако в инструментах разработчика скрипт B.js исчезает через доли секунды, и A.js загружается (перечисляется) дважды! Конечно, методы из скрипта B.js отсутствуют, и приложение трескается.

Я попытался вставить код из зачеркнутого B.js до конца A.js. Это работает.

Однако необходимо, чтобы код был помещен в отдельный файл B.js.

enter image description here enter image description here

1 Ответ

0 голосов
/ 05 ноября 2019

Я полагаю, что некоторые заинтригованы этой странной ошибкой, поэтому я опубликую обходной путь, который я сделал. Я не говорю «решение» и не говорю, что я понимаю, что происходит, я просто говорю, что понял, какой код IE решает игнорировать настолько плохо, что он не загружает весь скрипт:

Метод "play" в playerApi.prestoplayer.js выглядит следующим образом:

play: function (url) {
    var promise = this.player.play();
    if (promise !== undefined) {
        promise.then(() => {
            // Autoplay started...
        });
    }
},

И если он у меня будет, скрипт не загрузится! Теперь получите следующее: если я прокомментирую обещание. Тогда ... тогда IE решает загрузить скрипт !!

play: function (url) {
    var promise = this.player.play();
    if (promise !== undefined) {
        //promise.then(() => {
        //   // Autoplay started...
        //});
    }
},

Если я не подчеркивал это достаточно, метод play () никогда не будетпочти позвонил! Это просто определено в скрипте, waititng, который будет вызван!

Теперь получите это:

Если я напишу что-то совершенно безумное, как это:

play: function (url) {
    var promise = this.player.play();
    if (promise !== undefined) {
        xrtgrtgjtwrohjoirjthoojqtreoqoeigjoiqeo
    }
},

Это нормально для IE! Он загружает скрипт, он не против этой синтаксической ошибки. Но если я использую "xxxx.then" в скрипте, IE не хочет загружать этот скрипт !!!

Надеюсь, это поможет кому-то и сэкономит его нервы, время, деньги, семейное положение и т. д.

...