Highcharts和phantomjs错误。无法找到变量Highcharts

时间:2016-07-10 16:32:34

标签: javascript highcharts phantomjs

我正在尝试使用 Highcharts phantomjs 生成一些服务器端图表,但出现以下错误:

  

无法找到变量Highcharts。

我知道这里有类似的问题,但没有人帮助过我。 我正在使用Windows,使用phantomjs 2.1.1,Highcharts 4.2.5

error image

这是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 */
    },

有没有人解决过这个问题?

4 个答案:

答案 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.jshighcharts.jshighcharts-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>