如何使用IE11蓝鸟

时间:2017-03-30 02:09:20

标签: javascript webpack bluebird html-webpack-plugin

我正在使用webpack捆绑东西。它似乎在其他所有浏览器中运行良好,但在IE(没有承诺)中,它给出了它无法找到Promise的错误。

我使用HtmlWebpackPlugin来注入所有脚本。因此,我的应用程序的脚本总是注入到最后。但是,在我的应用程序块中,它似乎有这个代码(通过使用cdn url链接在未编辑的文件中搜索来找到它):

/* 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);
    }
});

似乎在页面加载时在我的DOM末尾动态插入另一个script标记。由于我之前的脚本已经通过执行,因此它们会出现无法找到Promise的错误。在任何其他浏览器中都看不到此行为(即使代码对IE进行了特定检查)。

有没有办法在不引起此行为的情况下使用蓝鸟?我的目标是IE10 +与promises的兼容性(在IE11上测试)。或者我是否必须去另一个承诺图书馆?

我认为我的webpack配置在这里并不重要,但如果需要,请告诉我。

0 个答案:

没有答案