首页 > 解决方案 > D3js v5.16.0 没有在 IE>11 中加载,它在 d3.min.js/d3.js 中使用了 fetch

问题描述

附上 IE 不支持 fetch 的截图

我没有使用任何框架或任何其他平台,如 nodejs。它是纯 Javascript 和 d3js 代码。我尝试从 cdn 添加 polyfill

有没有其他方法可以解决这个问题?

从 github 下载的包中添加了 fetch.js。虽然问题仍然存在

<script src="js/fetch.js"></script>
<script type="text/javascript" src="js/jquery-1.12.4.js"></script>
<script type="text/javascript" src="js/jquery-ui.js"></script>
<script type="text/javascript" src="js/html2canvas.min.js"> </script>

标签: javascriptjqueryinternet-explorerd3.jsfetch

解决方案


我建议尝试使用下面的代码进行测试。它与 IE 11 浏览器一起工作,没有任何错误。它可以帮助您解决问题。

<!DOCTYPE html>

<html lang="zh-Hant-TW">

<head>

    <meta charset="utf-8">

    <title>d3 v5 in IE 11</title>

</head>

<body>

    <h2>subreddit</h2>

    <div id="d"></div>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/es6-promise/4.1.1/es6-promise.min.js" integrity="sha256-45YA33UQCDcJsntBst2bhka2t/LBNHP7RNvpllHPkQ0=" crossorigin="anonymous"></script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/es6-promise/4.1.1/es6-promise.auto.min.js" integrity="sha256-OI3N9zCKabDov2rZFzl8lJUXCcP7EmsGcGoP6DMXQCo=" crossorigin="anonymous"></script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/fetch/2.0.4/fetch.min.js" integrity="sha256-eOUokb/RjDw7kS+vDwbatNrLN8BIvvEhlLM5yogcDIo=" crossorigin="anonymous"></script>

    <script src="https://d3js.org/d3.v5.min.js"></script>

    <script type="text/javascript">

      d3.json('https://www.reddit.com/api/trending_subreddits.json').then(function(data) {

        d3.select('#d').selectAll('p').data(data.subreddit_names).enter().append('p').text(function(d){ return d });

      });

    </script>

</body>

</html>

参考:

在 IE 11 中使用 D3 版本 5

如果问题仍然存在,那么我们需要示例代码来检查问题。它可以帮助我们更好地理解问题。


推荐阅读