TypeError: google.load is not a function when using ajax(TypeError:使用AJAX时,google.load不是函数)
本文介绍了TypeError:使用AJAX时,google.load不是函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Google图表(TermCloud)来显示一些数据。我可以将其作为页面上的一个静态功能很好地工作,但是当我尝试通过AJAX加载图表及其资产时,它似乎一直抛出错误:
'TypeError: google.load is not a function'
以下是我的AJAX函数:
$("li.contentpanel").click(function() {
$("#content-panel").show();
$('#content-panel').animate({
width: '540'
}, 500, function() {
var dataString = 'alert=1';
$.ajax({
type: "POST",
url: "<?php echo site_url($topicmaplink);?>",
data: dataString,
cache: false,
success: function(html){
$("#content-panel #inner").html(html);
}
});
});
这是名为:
的页面(JSAPI和TermCloud插件文件在此页顶部加载)
$(function() {
google.load("visualization", "1");
google.setOnLoadCallback(draw);
function draw() {
data = new google.visualization.DataTable();
data.addColumn('string', 'Label');
data.addColumn('number', 'Value');
data.addColumn('string', 'Link');
data.addRows(<?php echo sizeof($topics);?>);
<?php
$trans = array("ã" => "a", "³" => "3", "º" => "0", "â" => "a",
"¡" => ";", "'" => "", "
" => "",'"' => '');
shuffle($topics);
for($j=0;$j<sizeof($topics);$j++){
$nonforeignkeyword = strtr($topics[$j]['keyword'],$trans);
$totalnumber = $topics[$j]['occurrence'];
echo 'data.setValue('.$j.', 0, "'.trim($nonforeignkeyword).'");';
echo 'data.setValue('.$j.', 1, '.$totalnumber.');';
echo 'data.setValue('.$j.', 2, "'.$partlink.'/searchterm||'.trim(rawurlencode($nonforeignkeyword)).'");';
}
?>
var outputDiv = document.getElementById('cp-tmap');
var tc = new TermCloud(outputDiv);
tc.draw(data, null);
}
});
即使我从通过AJAX调用的页面中删除了JSAPI和TermCloud js文件,并将它们放在被调用的页面上,该页面似乎也会重定向到google.com并挂在空白页面上。
有人知道我哪里出错了吗?
提前感谢您的帮助
推荐答案
为可能遇到相同问题的任何人解决了此问题。在google.load和setOnLoadCallback上删除,并在绘制DataTable后将它们放在各自的回调函数中:
<pre>
<code>
//google.load("visualization", "1");
//google.setOnLoadCallback(draw);
function draw() {
data = new google.visualization.DataTable();
data.addColumn('string', 'Label');
data.addColumn('number', 'Value');
data.addColumn('string', 'Link');
data.addRows(<?php echo sizeof($topics);?>);
<?php
$trans = array("ã" => "a", "³" => "3", "º" => "0", "â" => "a", "¡" => ";", "'" => "", "
" => "",'"' => '');
shuffle($topics);
for($j=0;$j<sizeof($topics);$j++){
$nonforeignkeyword = strtr($topics[$j]['keyword'],$trans);
$totalnumber = $topics[$j]['occurrence'];
echo 'data.setValue('.$j.', 0, "'.trim($nonforeignkeyword).'");';
echo 'data.setValue('.$j.', 1, '.$totalnumber.');';
echo 'data.setValue('.$j.', 2, "'.$partlink.'/authorname||'.trim(rawurlencode($nonforeignkeyword)).'");';
}
?>
var outputDiv = document.getElementById('cp-tmap');
var tc = new TermCloud(outputDiv);
tc.draw(data, null);
}
$(document).ready(function(){
setTimeout(function(){
google.load("visualization", "1",{"callback" : draw});
}, 100);
});
</code>
</pre>
这篇关于TypeError:使用AJAX时,google.load不是函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:TypeError:使用AJAX时,google.load不是函数
基础教程推荐
猜你喜欢
- 响应更改 div 大小保持纵横比 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- 在for循环中使用setTimeout 2022-01-01
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 动态更新多个选择框 2022-01-01