我正在使用 webpack 来捆绑东西。它似乎在所有其他浏览器中都运行良好,但在 IE(没有承诺)中,它给出了无法找到的错误Promise
。
我HtmlWebpackPlugin
用来注入所有脚本。因此,我的应用程序的脚本总是在最后注入。但是,在我的应用程序块中,它似乎有这个代码(通过使用 cdn url 链接在 unminified-files 中搜索找到这个):
/* WEBPACK VAR INJECTION */(function($, Promise) {(function() {
var getFormFieldsFor, handleFileSelect, uploadFile, uniqid, OnComplete;
var displayUploadProgress, setCaptionText, initProgressBar, resetProgressBar;
var handleAlbumUpload, handleVideoUpload, handleAudioUpload;
/** IE doesn't support Promises in ES5', bluebird alternative script can handle it */
$(document).ready(function () {
if (navigator.appName == 'Microsoft Internet Explorer' || !!(navigator.userAgent.match(/Trident/) || navigator.userAgent.match(/rv 11/)) || (typeof $.browser !== "undefined" && $.browser.msie == 1)) {
var script=document.createElement('script');
script.type='text/javascript';
script.src='https://cdnjs.cloudflare.com/ajax/libs/bluebird/3.3.5/bluebird.min.js';
$("body").append(script);
}
});
它似乎script
在页面加载时在我的 DOM 末尾动态插入另一个标签。由于我之前的脚本已经通过执行,它们给出了Promise
无法找到的错误。这种行为在任何其他浏览器中都看不到(即使代码对 IE 进行了特定检查)。
有没有办法在不引起这种行为的情况下使用蓝鸟?我的目标是 IE10+ 与 Promise 的兼容性(在 IE11 上测试)。还是我必须去另一个承诺库?
我认为我的 webpack 配置在这里不会有太大的相关性,但如果需要,请告诉我。