HighCharts未被捕获的例外

时间:2012-07-14 19:03:03

标签: javascript jquery highcharts

我试图在本地jsFiddle中运行相同的代码,但是我从firebug得到错误

uncaught exception: Highcharts error #13: www.highcharts.com/errors/13

附带的脚本fiels:

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="http://highcharts.com/js/testing.js"></script>
<script type="text/javascript" src="test.js"></script>  // my js file

同样的事情也发生在jsFiddle上。

任何人都知道为什么会这样吗?

编辑:我找到了问题的原因。实际上我必须在我的<script type="text/javascript" src="test.js"></script>标记之后添加<div id="container"></div>标记,否则即使我将<script>标记放在<head>中,也会显示未捕获的异常。我以前从未将脚本文件放在<body>标签中,这是我第一次遇到这个问题。有人可以解释一下为什么会这样吗?

由于

3 个答案:

答案 0 :(得分:18)

这意味着加载了Highcharts并加载了配置,但是renderTo选项是错误的,或者页面中没有带有该id的div。请参阅www.highcharts.com/errors/13

答案 1 :(得分:2)

您尝试渲染图表的元素/ div缺失

我将用于解决highcharts错误#13的一组标准日志

        console.log("JSON: " + JSON.stringify(chartingOptions));
        console.log("Render to element with ID : " + chartingOptions.chart.renderTo);
        console.log("Number of matching dom elements : " + $("#" + chartingOptions.chart.renderTo).length);

这些应该在调用Highcharts构造函数

之前添加
        chart = new Highcharts.Chart(chartingOptions);

如果一切正常,您应该看到正确的元素ID,长度为1.

Troubleshooting highcharts error # 13 | Highchart & Highstock @ jsFiddle

以下是上面演示的日志

  

JSON:{“chart”:{“renderTo”:“container”...}}
  渲染到具有ID的元素:容器
  匹配的dom元素数量:1

答案 2 :(得分:2)

我想我知道你为什么要在div / div之后添加那个标签。 如果您使用的是JSP或任何其他服务器端stuf。您应该在

容器的声明之后添加Highcharts脚本,以便它可以识别您的div的ID,然后继续渲染它。就像我在下面的例子中所做的那样:

    <head>
    <title>HighCharts :D</title>
    <script src="http://code.highcharts.com/highcharts.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
</head>
<body>
<div id="container" style="width: 600px; height: 400px; margin: 0 auto">
</div>
<script type="text/javascript">
    var myChart = Highcharts.chart('container', {
        chart: {
            type: 'bar'
        },
        title: {
            text: 'Fruit Consumption'
        },
        xAxis: {
            categories: ['Apples', 'Bananas', 'Oranges']
        },
        yAxis: {
            title: {
                text: 'Fruit eaten'
            }
        },
        series: [{
            name: 'Jane',
            data: [1, 0, 4]
        }, {
            name: 'John',
            data: [5, 7, 3]
        }]
    });


</script>
</body>