为 Internet Explorer 跳过包含 d3.js

Skip inclusion of d3.js for Internet Explorer

我有一个项目使用最新版本的 d3 (v6),我在我的 index.html 中包含 api 如下:

        <script src="scripts/d3.js"></script>

这个版本的 d3 不支持 IE,我得到一个控制台错误,因为 IE 中 Javascript 的 ECMA 版本不支持 => 例如。

这对我来说很好,因为我测试 window.d3 是否存在,如果不存在,那么我会显示其他内容而不是我的 d3 图表。

但我不想出现这个控制台错误。

如果浏览器不是 IE,我如何只包含 d3.js?

谢谢

您可以检查浏览器userAgent是否是IE,如果不是则加载d3脚本。

您可以参考下面的代码,它运行良好并清除了 IE 11 中的 d3 控制台错误:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <script>
        var ua = window.navigator.userAgent;
        var msie = ua.indexOf("MSIE ");
        if (!(msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))) //If not IE, load d3 script
        {
            document.write('<script src="scripts/d3.js"><\/script>');
        } 
    </script>
</head>
<body>
    <svg>
        <circle class="target" style="fill: #69b3a2" stroke="black" cx=50 cy=50 r=40></circle>
    </svg>
    <script>
        if (window.d3) {
            d3.select(".target").style("stroke-width", 8);
        }
        else {
            alert("IE");
        }
    </script>
</body>
</html>