我使用下面的腳本(問題與選擇菜單,onchange事件)的對象:「空」是不是與谷歌圖表
<header>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
</header>
<body>
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Header');
data.addColumn('number', '');
data.addColumn('number', '');
data.addRows([
['Monday',300,43],
['Tuesday',250,545],
['Wednesday',122,78],
['Thursday',348,92],
['Friday',23,61],
['Saturday',39,93]
]);
var options = {
title: '',
hAxis: {title: '', titleTextStyle: '#efede9'},
backgroundColor: '#efede9',
legend: 'none'
};
var chart = new google.visualization.AreaChart(document.getElementById('area_chart_google'));
chart.draw(data, options);
}
</script>
<div id="area_chart_google" class="area-chart"></div>
<body>
,因爲我使用的是動態的,我不能使用腳本中頭內容。
當我第一次加載頁面,並刷新後,我覺得它工作。我現在的問題是,我使用的是一個onchange事件選擇菜單,與此類似:
<select id="form_frame1" name="frame1" onchange="getChart(this);">
<option value="area_chart_google" >Area Chart</option>
<option value="area_chart_2" selected="selected">Stacked Chart</option>
</select>
我getChart功能是:
function getChart(selection) {
if (selection.value == "area_chart_2") {
document.getElementById('area_chart_2').style.display = 'block';
document.getElementById('area_chart_google').style.display = 'none';
}
else {
document.getElementById('area_chart_2').style.display = 'none';
document.getElementById('area_chart_google').style.display = 'block';
}
}
因此,一旦不顯示我的area_chart_google(顯示器:無),我選擇它,我得到的錯誤:
*Firebug* google-visualization-errors-all-1
*Chrome* Cannot read property 'length' of null
*Safari* 'null' is not an object
我的猜測是一些與的getElementById,所以我嘗試使用:
window.onload = function(){ javascript code here }
而且也:
$(document).ready(function() {
javascript code here
});
沒有發生。我沒有得到任何錯誤,但圖表沒有出現。
任何幫助將不勝感激。
我使用jsapi頭(它wasn在我的問題中不明確)。有兩件事情與你的不同之處在於,我不能在頭中使用腳本代碼(因爲我正在使用動態內容和其他一些原因)。第二件事是我你兩次調用google.load(我也是這樣做的,但它沒有什麼區別)。非常感謝。 – 82din 2013-03-07 16:57:56