为 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>
我有一个项目使用最新版本的 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>