首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >优雅地包含es6-promise for IE

优雅地包含es6-promise for IE
EN

Stack Overflow用户
提问于 2017-08-04 22:45:18
回答 2查看 7K关注 0票数 2

由于Promise在所有IE版本中都是not support的,所以我想让IE用户下载一个用HTML填充的pollyfill。

代码语言:javascript
运行
复制
<!--[if IE]>
<script src="//cdnjs.cloudflare.com/ajax/libs/es6-promise/4.1.1/es6-promise.min.js"></script>
<![endif]-->

但是,IE 10和11中的conditional comments are not supported。所以上面的代码在IE 10和11中不起作用。

然后,Microsoft提供了一种解决方法。

代码语言:javascript
运行
复制
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">

这使得IE 10和11的行为类似于IE 9。

但我的网站只能在IE 10+中使用。所以这个解决方案不适合我。有没有其他方法来解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-04 22:48:59

只需使用

代码语言:javascript
运行
复制
<script>
    if (typeof Promise !== "function")
        document.write('<script src="//cdnjs.cloudflare.com/ajax/libs/es6-promise/4.1.1/es6-promise.min.js"><\/script>');
</script>

它不仅适用于IE用户,而且适用于所有没有原生Promise实现的环境。

票数 10
EN

Stack Overflow用户

发布于 2018-03-23 05:09:10

不使用外部脚本也是如此

代码语言:javascript
运行
复制
var lPromise = function(handler) {
  if (typeof Promise === "function")
    return new Promise(handler);
  var self = this;
  self._handler = handler;
  this.then = function(onFulfilled, onRejected) {
    this._handler(onFulfilled, onRejected);
  }
  return self;
}
this.Promise = function(handler) {
  return new lPromise(handler);
}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45509701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档