无法获取属性'DataTable'的值:object为null或undefined

时间:2013-09-26 09:35:06

标签: javascript internet-explorer google-visualization

IE使用google visualization api失败

我的javascript在domcententloaded上运行,但在尝试使用时开始时就失败了。

    document.addEventListener("DOMContentLoaded", function drawChart() {
        alert("1");
        google.load('visualization', '1.0', { 'packages': ['corechart'] });
        // Create the data table.
        var data = new google.visualization.DataTable(); //this fails
        ...});

我正在使用ie9

2 个答案:

答案 0 :(得分:0)

不会再次加载google.visualization对象;)

试试这个:

function onready_visualization() {
 var data = new google.visualization.DataTable(); //this fails
};

document.addEventListener("DOMContentLoaded", function drawChart() {
        alert("1");
        google.load('visualization', '1.0', { 'packages': ['corechart'], 'callback': onready_visualization });
        // Create the data table.
        //...
});

答案 1 :(得分:0)

一般来说,没有充分的理由等待文档加载加载Visualization API(并且实际上可能会导致问题,因为google加载器在从其他函数调用时表现得很奇怪)。将可视化代码放入函数中,并使用Google加载器中的回调来绘制可视化:

function drawVisualization () {
    var data = new google.visualization.DataTable();
    // rest of visualization code
}
google.load('visualization', '1', {packages: ['corechart'], callback: drawVisualization});