【发布时间】:2016-07-01 04:34:36
【问题描述】:
我有一个简单的代码,可以在除 Internet Explorer 11 之外的所有浏览器上完美运行。我怎样才能让它在所有浏览器上运行?
'use strict';
let promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("result");
}, 1000);
});
promise
.then(
result => {
alert("Fulfilled: " + result);
},
error => {
alert("Rejected: " + error);
}
);
【问题讨论】:
-
ie11没有es2015
-
IE11 既不支持arrow functions 也不支持native Promises。使用 JS 转译器(如 babel)或不使用 ES6 功能。对于 Promise 支持,您可以使用像 bluebird 这样的库。
-
(顺便说一句,注意caniuse.com 如何表明此代码也不会在 IE11 以外的其他浏览器中运行。养成检查您想要的 JS、CSS 或 HTML 功能的支持程度的习惯使用是。)
-
如果你使用 Babeljs 来编译你的代码,你可以安装 "es2015-ie" 预设和 "babel-polyfill" npm 模块来解决这个与 IE 的兼容性问题,同时避免大量其他 IE 相关问题
标签: javascript internet-explorer promise internet-explorer-11 polyfills