【问题标题】:d3 not defined, however it works on the in browser consoled3 未定义,但它适用于浏览器控制台
【发布时间】:2017-12-01 00:40:18
【问题描述】:

我正在使用 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

这是一个错误吗?或者有什么我想念的吗?

【问题讨论】:

  • 您的脚本是加载在文件顶部还是底部?
  • 我已经尝试过顶部和底部,但它的行为相同。

标签: html node.js d3.js


【解决方案1】:

愚蠢的错误。当我试图改变&lt;script src='/js/d3.min.js'&gt;&lt;/script&gt; 的位置时,我把它放在了这个里面:

<!--[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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 2021-02-13
    • 1970-01-01
    • 2021-10-12
    • 2019-08-29
    • 2018-01-31
    相关资源
    最近更新 更多