0

我正在使用 Drupal 7 进行开发。我创建了一个带有报告的自定义模块,我想在其中使用 google jsapi 添加图表。我称这个api为:

drupal_add_js('https://www.google.com/jsapi');

然后在 mymodule.js 中使用了下一个虚拟 js:

google.load("visualization", "1", {packages:["corechart"]});
 google.setOnLoadCallback(drawChart);
 function drawChart() {
   var data = google.visualization.arrayToDataTable([
     ['Task', 'Hours per Day'],
     ['Work',     1],
     ['Eat',      2],
     ['Commute',  2],
     ['Watch TV', 2],
     ['Sleep',    7]
   ]);

   var options = {
     title: 'My Daily Activities',
     pieHole: 0.4,
   };

   var chart = new google.visualization.PieChart(document.getElementById('donutchart'));
   chart.draw(data, options);
 }

这个假人进入 mymodule.admin.inc :

<div id="donutchart" style="width: 900px; height: 500px;"></div>

问题是当站点向 jsapi 收费时,所有站点都在继续收费,但什么也没有发生。

我一直在关注本教程 https://drupal.org/node/1808654

我希望有人可以帮助我解决这个问题,感谢您的回复。

4

1 回答 1

0

external当包含外部托管的 javascript 文件时,您需要在调用drupal_add_js函数时指定它。当没有指定这个参数时,Drupal 将尝试将它加载到文件系统(不存在)上。

drupal_add_js('https://www.google.com/jsapi', 'external');

更新

您似乎遇到了空白页问题。您能否尝试使用以下 javascript 代码,我已经更改了直接通过加载函数传递它的回调定义。

google.load("visualization", "1", { 'callback': 'drawChart', packages: ["corechart"] });

function drawChart() {
   var data = google.visualization.arrayToDataTable([
     ['Task', 'Hours per Day'],
     ['Work',     1],
     ['Eat',      2],
     ['Commute',  2],
     ['Watch TV', 2],
     ['Sleep',    7]
   ]);

   var options = {
     title: 'My Daily Activities',
     pieHole: 0.4
   };

   var chart = new google.visualization.PieChart(document.getElementById('donutchart'));
   chart.draw(data, options);
}
于 2013-10-15T19:23:56.170 回答