2013-01-05 41 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>