所以我的情况如下:
我有一个创建谷歌图表的页面,我将图表放在 div 中作为示例,这里https://google-developers.appspot.com/chart/interactive/docs/gallery/linechart
如果我通过使用 iframe 将该页面转到另一个页面,那效果很好
<iframe id="mychart" name="mychart" src="stuff/chart.html"
frameborder="0" onLoad=autoResize("mychart");></iframe>
但我想通过使用 ajax 来获得它。
我试过以下
<script type="text/javascript">
google.load('visualization', '1', {'packages':['corechart']});
</script>
<script type="text/javascript">
$(document).ready(function() {
google.setOnLoadCallback(function() {
$.ajax({type: 'get', format: 'html', timeout: 9000, url: 'stuff/chart.html', success:
function (data) {
console.log(data);
$('#mychart').html(data);
var result = $(data).filter('#chart_div');
console.log(result.html());
$('#mychart').html(result.html());
}});
});
});
</script>
第一个日志根据需要显示 html 代码,但是在记录包含谷歌图表的实际 div 时,我想显示结果变量似乎为空。
这里概述了chart.html。我确实删除了很多不相关的代码,但你应该明白了。
<html>
<head>
<script type="text/javascript">
//Load the AJAX API
// Load the Visualization API
function drawChart() {
// Took out a lot of stuff
var data = new google.visualization.DataTable(jsonData);
var chart = new google.visualization.AreaChart(document.getElementById('chart_div'));
chart.draw(data, {
// Setting up parameters
});
}
// Set a callback to run when the Google Visualization API is loaded.
google.setOnLoadCallback(drawChart);
</script>
</head>
<body>
<!--Div that will hold a chart-->
<div id="chart_div"></div>
</body>
</html>
我确实用 jQuery $(document).ready() 检查了 google.setOnLoadCallback,可以混合吗?
和其他一些主题。
那么有没有办法以这种方式加载谷歌图表,或者我应该只使用 iframe 吗?因为我猜想其他图表从未创建过会发生什么?
提前致谢!