我试图在本地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>
标签中,这是我第一次遇到这个问题。有人可以解释一下为什么会这样吗?
由于
答案 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。您应该在
<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>