首页 > 解决方案 > Internet Explorer 中的 Javascript/Jquery 错误

问题描述

我已经用 chrome 完成了大部分编程调试我的网站,最近在 Internet Explorer 中查看了结果。我得到的错误没有出现在 chrome 中。我相信我在堆栈溢出时从其他已接受的答案中获得了这些代码片段。他们可以得到的任何帮助都将不胜感激。我确实做了一些研究,但 Internet Explorer (11) 解决方案对我来说并不是立竿见影的

睡觉

核心价值

异步

标签: javascriptjqueryinternet-explorer

解决方案


图片中的错误都是由于 IE 不支持 ES6/ES7 语法造成的。如果您需要 Internet Explorer 11 中的 ES6 功能,请查看Babel等转译器。这里有一篇关于如何使用 babel 将 ES6 转换为 ES5 的文章,请查看。

  1. 箭头功能

您应该使用 Bable 转换它或更改如下语法:

function sleep(ms) {
  return new Promise(function (resolve) {
    return setTimeout(resolve, ms);
  });
}
  1. 承诺

您可以参考this thread about making promise work in IE。您可以使用像Bluebird这样的 3rd 方承诺库。

  1. Object.entries()

您需要添加一个polyfill以使其在 IE 11 中工作:

if (!Object.entries) {
  Object.entries = function( obj ){
    var ownProps = Object.keys( obj ),
        i = ownProps.length,
        resArray = new Array(i); // preallocate the Array
    while (i--)
      resArray[i] = [ownProps[i], obj[ownProps[i]]];
    
    return resArray;
  };
}
  1. 异步功能

您可以使用facebook/regenerator在 IE 11 中填充 async/await。

您可以按照以下步骤在 IE 11 中支持 async/await:

  • 使用babel-preset-env
  • yarn add regenerator或者npm install regenerator
  • 添加node_modules/regenerator-runtime/runtime.js (10.7kb minified)到您的捆绑包中

参考链接:通过 3 个简单步骤为您的 Webapp 添加 ES7 Async/Await 支持


推荐阅读