Javascript Google图表错误:无法读取属性';长度';未定义的;谷歌图表中的调试错误
下面的代码可以作为独立页面正常工作。但如果将其合并到我的PHP web应用程序中,就会抛出错误。如果错误发生在GoogleChartJS中,如何调试? 任何建议都会有帮助Javascript Google图表错误:无法读取属性';长度';未定义的;谷歌图表中的调试错误,javascript,google-visualization,Javascript,Google Visualization,下面的代码可以作为独立页面正常工作。但如果将其合并到我的PHP web应用程序中,就会抛出错误。如果错误发生在GoogleChartJS中,如何调试? 任何建议都会有帮助 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>
Google Visualization API Sample
</title>
</head>
<body style="font-family: Arial;border: 0 none;">
<div id="myGraphLabel" onclick="drawColumnChart();">
My Column Chart
</div>
<div id="myColumnChart" style="width: 600px; height: 400px;"></div>
</body>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('visualization', '1', {packages: ['corechart']});
function drawColumnChart() {
// Create and populate the data table.
var data = new google.visualization.DataTable();
data.addColumn('string', 'Task');
data.addColumn('number', 'Hours per Day');
data.addRows(2);
data.setValue(0, 0, 'Work');
data.setValue(0, 1, 11);
data.setValue(1, 0, 'Eat');
data.setValue(1, 1, 2);
// Create and draw the visualization.
new google.visualization.PieChart(document.getElementById('myColumnChart')).
draw(data, {title:"So, how was your day?"});
}
</script>
</html>
谷歌可视化API示例
我的柱状图
load('visualization','1',{packages:['corechart']});
函数drawColumnChart(){
//创建并填充数据表。
var data=new google.visualization.DataTable();
data.addColumn('string','Task');
data.addColumn('数字','每天小时');
数据。添加行(2);
data.setValue(0,0,'工作');
数据设置值(0,1,11);
data.setValue(1,0,'Eat');
数据设置值(1,1,2);
//创建并绘制可视化。
新的google.visualization.PieChart(document.getElementById('myColumnChart'))。
绘制(数据,{标题:“你今天过得怎么样?”});
}
Chrome中的错误:它显示“无法读取未定义的属性'length',容器中有红色背景
Firefox中的错误:在Firebug控制台中抛出以下错误:
b[c]是未定义的
第785行在我的web应用程序中,我包含了“prototype-1.6.0.2.js”,这导致了这个错误!
如果我排除'prototype-1.6.0.2.js',一切都很好 如果您使用的是Prototype JS框架,那么这个答案将适用。(我在这里看不到,但它可能被排除在外) 谷歌可视化API上有一张关于这个问题的公开票 一个潜在的问题是原型或其他库的版本可能存在冲突 或者,可能需要重新定义reduce函数:
<script type="text/javascript">
Array.prototype.reduce = undefined;
</script>
Array.prototype.reduce=未定义;
[注意:我以前遇到过这个问题,这导致了解决方案。我第二次遇到这个问题,但原始解决方案不适用于这个新问题。您的里程可能会有所不同。]我遇到过类似的问题,谷歌图表工具和原型库发生冲突。我将Prototype从1.6.1版升级到1.7.1版,问题就解决了。您提供的代码运行良好-您所说的合并到PHP是什么意思?我的意思是在.ctp文件中。很抱歉,不够清晰。我确实发现,由于包含prototype-1.6.0.2.js,它无法工作。:)2011年Google Visualization API与原型JS框架(或其他类似系统)结合使用时可能遇到的问题现在可能有所不同。在任何情况下,强制Array.prototype.reduce未定义的解决方法都会导致问题,事实上,您的代码现在很可能会失败。突然,我遇到了这个错误。这是去年的工作。我试过这个,但不管用。