我正在使用node.js并尝试使用d3.js模块,但它表示在页面加载时没有定义它。但是,在浏览器控制台中我可以访问d3功能,所以我很困惑。
Chrome,Firefox和Safari都会发生这种情况。
后端的链接如下所示:
app.use('/js', express.static(__dirname + 'public/scripts'));
html(尝试了页面的顶部和底部):
<script src='/js/d3.min.js'></script>
In-html脚本:
<script type="text/javascript">
var width = 700;
var height = 580;
var svg = d3.select("body")
.append('svg')
.attr('width', width)
.attr('height', height);
</script>
当呼叫d3时,控制台记录:blank.html:394 Uncaught ReferenceError: d3 is not defined
这是一个错误吗?或者有什么我想念的东西?
答案 0 :(得分:0)
愚蠢的错误。当我尝试更改<script src='/js/d3.min.js'></script>
的位置时,我把它放在这里:
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<script src="https://d3js.org/d3.v4.min.js" charset="utf-8"></script>
<![endif]-->
所以,现在就是这样,它的确有效:
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script src="https://d3js.org/d3.v4.min.js" charset="utf-8"></script>