2009-09-29 12 views
0

Bonjour à tous!Diagramme de mouvement de visualisation de Google indéfini?

Je suis confronté à un problème ce matin où j'ai ajouté un graphique de mouvement de visualisation de Google à mon application. Mais comme la plupart des choses, il n'est pas compatible avec tous les navigateurs. En FF3 cela fonctionne bien mais dans Safari et IE 7 la console d'erreur dit: "TypeError: Résultat de l'expression 'google.visualization' [undefined] n'est pas un objet."

Je ne sais pas pourquoi cela se passe ou ce que je peux changer dans mon code. Voici l'extrait de code que j'utilise. Merci pour l'aide!

<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> 

Répondre

2

J'ai eu le même problème. J'ai trouvé que je devais inclure le script jsapi et les paquets de visualisation dans l'élément de tête, cela ne fonctionnait pas s'il était inclus dans le corps:

<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> 
Questions connexes