我有一个ruby-on-rails应用程序,我正在尝试使用highcharts/modules/canvas-tools.js。我继承了这个应用程序,但highcharts文件并不在其中。我不太了解javascript,所以我甚至不确定这个应用程序是如何使用这些资源的。应该显示图表的页面却没有。当我尝试查看图表时,我在Chrome控制台中得到以下错误:
Uncaught TypeError: Cannot read property 'prototype' of undefined 控制台指的是以下几行:
// Extend CanVG renderer on demand, inherit from SVGRenderer
extend(CanVGRenderer.prototype, SVGRenderer.prototype);在highcharts文件的末尾:
}(Highcharts));这是我的application.js:
//= require jquery
//= require jquery-ui-1.10.2.custom
//= require twitter/bootstrap
//= require highcharts
//= require highcharts/modules/canvas-tools
//= require highcharts/modules/exporting
//= require bootstrap-typeahead
//= require rails
//= require autocomplete-rails
//= require_tree .
$(document).ready(function() {
$('.dropdown-toggle').dropdown();
} );
$(document).ready(function() {
$('.popover-myasset').popover();
});在其他情况下,我得到一个错误,说highcharts被加载了不止一次,但我没有使用Highstock,这显然是这个错误的根源。指向错误消息的链接:http://highcharts.com/errors/16
感谢您能提供的任何建议。
发布于 2013-06-25 21:02:19
有几个问题。我所做的可能并不适用于所有情况。
我将highcharts require语句放在一个文件夹和文件中,该文件夹和文件以我使用它的视图命名:
app/assets/
-javascripts
--foos
---foos.js
--application.jsfoos.js包含:
//= require highcharts
//= require highcharts/modules/canvas-tools
//= require highcharts/modules/exporting发布于 2013-07-31 04:19:18
我也有过这样的错误-
未捕获原型:无法读取未定义的属性“TypeError”
为了解决这个问题,我在第2931行添加了以下内容-
CanVGRenderer = (typeof(Highcharts.CanVGRenderer) != "undefined"
? Highcharts.CanVGRenderer : {},因为扩展函数(highcharts.src.js的第128行)基本上在将变量传递给它时执行完全相同的操作。
还有canvas-tools.src.js中的第2897行-
if (CanvasRenderingContext2D) 在IE中也抛出错误。此部分来自于2013年5月7日更新的canvg.js,但未由highcharts更新,现在应该是-
if (typeof(CanvasRenderingContext2D) != 'undefined')发布于 2014-06-21 03:47:38
每个开发团队:
canvas-tools不应该包含在脚本文件中。相反,Highcharts懒惰地按需加载它。参见http://api.highcharts.com/highcharts#global.canvasToolsURL。
https://github.com/highslide-software/highcharts.com/issues/2311
https://stackoverflow.com/questions/16149147
复制相似问题