2013-10-15 3 views
0

Я развиваюсь в Drupal 7. Я создал настраиваемый модуль с отчетами, в которых мне бы хотелось добавить графики с помощью google jsapi. Я называю это апи:google jsapi не загружается в Drupal 7

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

Затем в mymodule.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.

Я надеюсь, что кто-то может помочь мне решить эту проблему, спасибо за ответ.

ответ

0

При включении внешних размещенных javascript-файлов вам необходимо указать, что это external при вызове функции drupal_add_js. Если не указывать этот аргумент, Drupal попытается загрузить его в файловую систему (которая не существует).

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

Update

кажется, что вы испытываете blank page проблему. Не могли бы вы попробовать со следующим кодом 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); 
} 
+0

Спасибо, уже изменил эту линию, но проблема сохраняется и поджигатель из Mozilla показывает, что это: Если