我使用Ajax代码加载html页面
例如:
$.ajax({
url: 'Context.html',
dataType: 'html',
timeout: 500,
success: function(html) {
$("div#mainbody").html(html);
}
});
Context.html我将其加载到其他一些html页面中,如Home.html
但我在Context.html中使用google API生成饼图
和生成饼图的代码,即在Context.html中是
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Year', 'Count'],
['2005', 70],
['2006', 80],
['2007', 140],
['2008', 220],
['2009', 290],
['2010', 400],
['2011', 500]
]);
var options = {
title: 'Head Count-(Apple Year)',
colors:['#129212']
};
var chart = new google.visualization.ColumnChart(document.getElementById('jsf_headcount_bargraph'));
chart.draw(data, options);
}
</script>
当我在Home.html页面中加载Context.html时,在Home.html中加载它后,我无法找到Context.html中的饼图
我试过给ALERT(“”);在脚本中,我为饼图编写代码。我收到了警告消息,因此Ajax正在执行javascript,但我没有获得相同脚本的饼图。所以我在Home.html页面中加载饼图
答案 0 :(得分:0)
如果你像这样使用Context.html
<script>
var j = 20;
alert();
</script>
然后我收到警告(使用$ .ajax({success:function(){}})等。)
[例子]
function execAjax() {
$.ajax( {
url: 'index2.html',
success: function( html ) {
$("#content").html( html );
checkJSvalue();
},
error: function() {
alert( "Error" );
}
});
}
function checkJSvalue() {
alert( j );
}
示例HTML(index2.html)
<div>
content of index2.html
</div>
<script>
var j = 20;
alert();
</script>
我试图将代码直接放在'home.html'中,但我已经遇到了错误。无论如何,您应该颠倒使用顺序和绘图功能的声明。
// Bad
// google.setOnLoadCallback(drawChart);
// function drawChart() {}
// Good
function drawChart() {}
google.setOnLoadCallback(drawChart);
除此之外,我已经从google.jsapi.js(本地复制)
Uncaught Error: Container is not defined format+nl,default,corechart.I.js:841
那里出了问题,这不是实际问题的一部分,而是缩小等等,所以我不会去那里。
希望这有用:)
答案 1 :(得分:0)
如果我替换代码
,一切正常google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
内嵌
google.load('visualization', '1.0', {'packages':['corechart'], "callback": drawChart});