0

(包括 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 中的方法丢失了,应用程序崩溃了。

我尝试将代码从 stript B.js 粘贴到 A.js 的末尾。有用。

但是,有必要将代码放在单独的文件 B.js 中。

在此处输入图像描述 在此处输入图像描述

4

1 回答 1

0

我想有些人对这个 stange 错误很感兴趣,所以我会发布我所做的解决方法。我不是在说“解决方案”,也不是说我理解发生了什么,我只是说我意识到 IE 决定忽略哪些代码如此糟糕,以至于它不会加载整个脚本:

playerApi.prestoplayer.js 中的“play”方法如下所示:

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

如果我有它,脚本将不会加载!现在得到这个:如果我评论 promise.then... 那么 IE 毕竟决定加载脚本!

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

如果我没有足够强调它,方法 play() 永远不会被调用!它只是在脚本中定义的,等待调用!

现在得到这个:

如果我像这样写一些完全疯狂的东西:

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

IE没问题!它加载脚本,它不介意这个语法错误。但是如果我在脚本中使用“xxxx.then”,IE 就不想加载那个脚本!!!

希望这可以帮助某人并节省他们的神经、时间、金钱、婚姻状况等。

于 2019-11-05T11:41:22.500 回答