2016-07-10 36 views
4

我試圖用Highchartsphantomjs,生成一些服務器端的圖表,但下面的錯誤不斷出現:Highcharts和phantomjs錯誤。找不到變量Highcharts

Can't find variable Highcharts.

我知道這裏有類似的問題,但沒有的他們幫助了我。 我使用Windows,與phantomjs 2.1.1,4.2.5 Highcharts

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

有沒有人解決過這個問題?

+0

所以這裏是一個顯而易見的問題你有包括highcharts庫 – kaveh

+0

按照這些指示: 所有這些文件保存到一個位置; highcharts-convert.js,highcharts.js或!? highstock.js用於股票圖表,highcharts-more.js(用於泡沫,範圍,極性圖表)以及最後但並非最不重要的jQuery。這些文件的ncy和位置在highcharts-convert.js腳本中配置。 我已經在highcharts-convert.js中添加了依賴關係,如上所示。 – magarisi

+0

附上屏幕截圖,列出文件夾中的所有文件:pha-high –

回答

5

我有相同的問題,雖然我的命令看起來有點不同:

phantomjs highcharts-convert.js -infile delete_this.json -outfile /home/max/BLA.png -width 300 -constr Chart -resources highcharts.js,jquery.js 

當你看到我使用虛擬JS的-resources選項包括所需的文件,但我仍然得到「燦找不到變量:Highcharts'錯誤。

也許資源部分幫助你?

編輯:我解決了我的問題,以及我的想法。

如果您使用像我描述的命令,它不會給你Highcharts錯誤,但它試圖解析資源時中斷。這是由於當前版本的highcharts-convert.js腳本中存在嚴重錯誤。

在第682行他們分裂參數,但他們使用未定義的參數資源。

fileList = resources.split('\,'); 

您需要更改到:

fileList = params.resources.split('\,'); 

現在對我的作品,我希望它可以幫助你。

1

謝謝你的解決方案@ max-uppenkamp。 Highcharts團隊應該毫不拖延地將其整合到他們的代碼中!編輯:我看你已經通知了他們:https://github.com/highcharts/highcharts-export-server/issues/18

我注意到一個命令行作爲最小的,因爲這仍然將工作:

phantomjs highcharts-convert.js -infile options.json -outfile chart.png -resources highcharts.js

另外,我只需要highcharts.js,在highcharts-convert.jsoptions.js我的文件夾。似乎我不需要highcharts多或jQuery。

注意:我的選擇。JSON文件看起來是這樣的:

{ 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] }] }

+0

更正了我的錯誤... – user2078148

0

解數2

創建一個名爲resources.js具有以下內容,並將其放在同一個文件夾options.js。現在你不需要編輯highcharts-convert.js,它仍然可以工作。

{ 
    "files": "highcharts.js" 
} 
0

希望這可以幫助別人。如果您使用https爲jsfiddle.net,那麼請確保您使用https也包含了高圖譜庫。否則,您將在Safari控制檯中看到「ReferenceError:無法找到變量:Highcharts」(不太有用)。在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> 
+0

您也可以嘗試 magarisi