首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >highcharts canvas-tools:无法读取未定义的属性“prototype”

highcharts canvas-tools:无法读取未定义的属性“prototype”
EN

Stack Overflow用户
提问于 2013-04-22 22:04:07
回答 3查看 4.8K关注 0票数 1

我有一个ruby-on-rails应用程序,我正在尝试使用highcharts/modules/canvas-tools.js。我继承了这个应用程序,但highcharts文件并不在其中。我不太了解javascript,所以我甚至不确定这个应用程序是如何使用这些资源的。应该显示图表的页面却没有。当我尝试查看图表时,我在Chrome控制台中得到以下错误:

代码语言:javascript
复制
Uncaught TypeError: Cannot read property 'prototype' of undefined 

控制台指的是以下几行:

代码语言:javascript
复制
// Extend CanVG renderer on demand, inherit from SVGRenderer
extend(CanVGRenderer.prototype, SVGRenderer.prototype);

在highcharts文件的末尾:

代码语言:javascript
复制
}(Highcharts));

这是我的application.js:

代码语言:javascript
复制
//= 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

感谢您能提供的任何建议。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-25 21:02:19

有几个问题。我所做的可能并不适用于所有情况。

我将highcharts require语句放在一个文件夹和文件中,该文件夹和文件以我使用它的视图命名:

代码语言:javascript
复制
app/assets/
-javascripts
--foos
---foos.js
--application.js

foos.js包含:

代码语言:javascript
复制
//= require highcharts
//= require highcharts/modules/canvas-tools
//= require highcharts/modules/exporting
票数 0
EN

Stack Overflow用户

发布于 2013-07-31 04:19:18

我也有过这样的错误-

未捕获原型:无法读取未定义的属性“TypeError”

为了解决这个问题,我在第2931行添加了以下内容-

代码语言:javascript
复制
CanVGRenderer = (typeof(Highcharts.CanVGRenderer) != "undefined"
    ? Highcharts.CanVGRenderer : {},

因为扩展函数(highcharts.src.js的第128行)基本上在将变量传递给它时执行完全相同的操作。

还有canvas-tools.src.js中的第2897行-

代码语言:javascript
复制
if (CanvasRenderingContext2D) 

在IE中也抛出错误。此部分来自于2013年5月7日更新的canvg.js,但未由highcharts更新,现在应该是-

代码语言:javascript
复制
if (typeof(CanvasRenderingContext2D) != 'undefined')
票数 2
EN

Stack Overflow用户

发布于 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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16149147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档