【问题标题】:Javascript/Jquery Errors in Internet explorerInternet Explorer 中的 Javascript/Jquery 错误
【发布时间】:2020-07-17 16:07:54
【问题描述】:

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

【问题讨论】:

标签: javascript jquery internet-explorer


【解决方案1】:

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

  1. Arrow function:

您应该使用 Bable 对其进行转译或更改如下语法:

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

你可以参考this thread 让 promise 在 IE 中工作。您可以使用像Bluebird 这样的第三方承诺库。

  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. async function:

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

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

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

参考链接:Add ES7 Async/Await Support for your Webapp in 3 Easy Steps

【讨论】:

  • 您的解决方案非常好,我可以看到可以使其发挥作用的参考资料。但是,我无法让它与 webpack 一起使用。我不是 webpack 专家,坦率地说我不喜欢 webpack。我最终使用的解决方案是将我的元素转换为引导轮播以创建相同的效果。它创造了我需要的延迟,而无需安装天知道有多少 babel 和 webpack 包。
猜你喜欢
  • 2012-02-13
  • 2012-05-30
  • 2013-04-28
  • 1970-01-01
  • 2015-06-14
  • 1970-01-01
  • 1970-01-01
  • 2018-11-29
  • 1970-01-01
相关资源
最近更新 更多