2009-09-29 57 views
0

早上好!Google可视化运动图未定义?

今天早上我遇到了一个问题,我向应用程序添加了Google Visualization Motion Chart。但像大多数情况下,它不符合浏览器标准。在FF3中,它工作正常,但在Safari和IE 7中,错误控制台显示:“TypeError:表达式结果'google.visualization'[undefined]不是一个对象。”

我不知道它为什么会发生,或者我可以在我的代码中进行更改。这是我使用的代码片段。感谢您的帮助!

<div id="NRG-motion-chart" style="width: 625; height: 625px;"></div> 

     <script type="text/javascript" src="http://www.google.com/jsapi"></script> 
    <script type="text/javascript"> 

    google.load('visualization', '1', {'packages':['motionchart']}); 
    google.setOnLoadCallback(drawChart); 
    function drawChart() { 
     var nrgChart = new google.visualization.DataTable(); 
     nrgChart.addColumn('string', 'Business Unit'); 
     nrgChart.addColumn('date', 'Date'); 
     nrgChart.addColumn('number', 'Sales'); 
     nrgChart.addColumn('number', 'Covers'); 
     nrgChart.addColumn('number', 'Sales Per Man Hour'); 
     nrgChart.addColumn('number', 'Labor Hours Per Cover'); 
     nrgChart.addColumn('string', 'Location'); 
     nrgChart.addRows([<?= $gData['gData']; ?> ]); 
     var chart = new google.visualization.MotionChart(document.getElementById('NRG-motion-chart')); 
     chart.draw(nrgChart, {width: 625, height:625}); 
    } 
    </script> 

回答

2

我有同样的问题。我发现我必须在头元素中包含jsapi脚本和可视化包,如果它包含在主体中,它不起作用:

<html> 
    <head> 
    <script src="http://www.google.com/jsapi" type="text/javascript"></script> 
    <script type="text/javascript"> 
     google.load("visualization", "1", {packages:["motionchart"]}); 
     google.setOnLoadCallback(function() { 
     //google.visualization will be defined here 
     }); 
    </script> 
    </head> 
    <body> 
    <!-- Everything else... --> 
    </body> 
</html>