我正在尝试使用 Highcharts 和 phantomjs 生成一些服务器端图表,但出现以下错误:
无法找到变量Highcharts。
我知道这里有类似的问题,但没有人帮助过我。 我正在使用Windows,使用phantomjs 2.1.1,Highcharts 4.2.5
这是options.js文件:
{
infile: {
xAxis: {
categories:['Jan','Feb','Mar','Apr',
'May','Jun','Jul','Aug',
'Sep','Oct','Nov','Dec']
},
series:[
{
data:[29.9,71.5,106.4,129.2,
144.0,176.0,135.6,148.5,
216.4,194.1,95.6,54.4]
}]
},
callback: function(chart){
chart.renderer
.arc(200,150,100,50,-Math.PI,0)
.attr({fill:'#FCFFC5',stroke:'black','stroke-width':1})
.add();
},
constr: "Chart",
outfile: "//tmp//chart.png"
}
和highcharts-convert.js配置选项:
var config = {
HIGHCHARTS: 'highcharts.js',
JQUERY: 'jquery-1.9.1.min.js',
TIMEOUT: 5000 /* 5 seconds timout for loading images */
},
有没有人解决过这个问题?
答案 0 :(得分:5)
我有完全相同的问题,虽然我的命令看起来有点不同:
phantomjs highcharts-convert.js -infile delete_this.json -outfile /home/max/BLA.png -width 300 -constr Chart -resources highcharts.js,jquery.js
如你所见,我使用phantom js的-resources选项包含了所需的文件,但我仍然无法找到变量:Highcharts'错误。
也许资源部分会帮助你?
编辑:我解决了我的问题,而且我认为你也解决了问题。如果您使用我所描述的命令,它不会给您Highcharts错误,但是在尝试解析资源时它会中断。这是由于当前版本的highcharts-convert.js脚本中存在严重错误。
在第682行中,他们拆分了参数,但是他们使用了未定义的参数资源。
fileList = resources.split('\,');
您需要将其更改为:
fileList = params.resources.split('\,');
它现在适合我,我希望它可以帮助你。
答案 1 :(得分:1)
感谢@ max-uppenkamp解决方案。 Highcharts团队应该毫不拖延地将其整合到他们的代码中!编辑:我看到你已经通知他们:https://github.com/highcharts/highcharts-export-server/issues/18
我注意到最小的命令行仍然可以工作:
var doSupport = CSS.supports('some CSS property', 'value');
另外,我的文件夹中只需要phantomjs highcharts-convert.js -infile options.json -outfile chart.png -resources highcharts.js
,highcharts.js
和highcharts-convert.js
。似乎我不需要高级图表 - 更多或jquery。
NB。我的options.json文件如下所示:
options.js
答案 2 :(得分:0)
解决方案编号2
使用以下内容创建名为resources.js
的文件,并将其放在与options.js
相同的文件夹中。现在您无需编辑highcharts-convert.js
,它仍然有效。
{
"files": "highcharts.js"
}
答案 3 :(得分:0)
希望这可能有助于其他人。如果您正在使用https进行jsfiddle.net,请确保您也使用https包含highcharts库。否则你会得到" ReferenceError:找不到变量:Highcharts"在Safari控制台(不是很有帮助)。在chrome控制台中,您会收到明确的消息。 "混合内容:' https://jsfiddle.net/'是通过HTTPS加载的,但请求了一个不安全的脚本' http://code.jquery.com/jquery-migrate-1.1.0.js'。此请求已被阻止;内容必须通过HTTPS提供。
对于https,请确保在jsfiddle的html窗口中有以下内容:
<script src="https://code.highcharts.com/highcharts.js"></script>