2013-01-05 97 views
0

我有一個html頁面,其中包含一些JavaScript以從Google API生成圖表。當我直接訪問頁面時,它按預期工作,顯示圖表。包含JavaScript的JQuery.load()頁面

<script type="text/javascript" src="https://www.google.com/jsapi"></script> 
<script type="text/javascript"> 
google.load('visualization', '1.0', { 'packages': ['corechart'] }); 
google.setOnLoadCallback(drawChart); 
function drawChart() { 
    //// code to generate chart 
    var chart = new google.visualization.LineChart(document.getElementById('chart_div')); 
    chart.draw(data, options); 
} 
</script> 
<div id="chart_div"> 
    Chart Div 
</div> 

我想將此圖表加載到另一頁上。我嘗試使用JQuery的$ .get和$ .load,但都沒有工作。如果我添加一些文本到頁面,並調用get/load我可以看到文本,但不是圖表 - 它似乎沒有執行Javascript。

我加了alert('msg'),看到google.load被調用,但沒有其他JS被調用。

從我希望包括圖表,我有以下JS其他頁面:

$(document).ready(function() { 
    $('#test').load('chart?param=1', function() { 
     alert('Load was performed.'); 
    }); 
}); 

但「負載進行」從來沒有被擊中。

+0

您在控制檯中遇到什麼錯誤? – Popnoodles

+1

您提供的代碼中存在語法錯誤。在第一部分沒有任何理由'}'並且沒有'});'關閉文檔就緒。 – Popnoodles

+0

抱歉,在複製/粘貼時會漏掉括號。看起來像google.load上的錯誤('visualization','1.0',{'packages':['corechart']}); – Steve

回答

0

「SCRIPT5009:‘谷歌’是不確定的」

我懷疑,當你.load這<script type="text/javascript" src="https://www.google.com/jsapi"></script>不工作()的代碼塊。由於jQuery已在運行,請嘗試此操作

<!-- get rid of this <script type="text/javascript" src="https://www.google.com/jsapi" --> 
<script type="text/javascript"> 
// does not need $(function()) unless you're running this on its own 
// when loading this in using $.load() it's already ready. 

$.getScript('https://www.google.com/jsapi', function(){ 
    google.load('visualization', '1.0', { 'packages': ['corechart'] }); 
    google.setOnLoadCallback(drawChart); 
}); 
function drawChart() { 
    //// code to generate chart 
    var chart = new google.visualization.LineChart(document.getElementById('chart_div')); 
    chart.draw(data, options); 
} 
</script>