我正在尝试通过AJAX添加Google图表,但在Firebug中我得到了:
ReferenceError: google is not defined
我发送的AJAX看起来像这样:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawVisualization);
etc etc...
</script>
我假设第一个脚本没有加载。我该如何解决这个问题? 我试过在ajaxComplete之后加载,但我无法让它工作。
答案 0 :(得分:1)
如果您想等到库加载,您可以定期检查它是否已加载,当您检测到它时,您可以执行您的代码。我在这个answer上解决了我的解决方案。
添加Javascript函数进行检查:
function whenAvailable(name, callback) {
var interval = 10; // ms
window.setTimeout(function() {
if (window[name]) {
callback(window[name]);
} else {
window.setTimeout(arguments.callee, interval);
}
}, interval);
}
然后添加一个代码,检查您是否加载了Google,并在加载后从内部运行代码
whenAvailable("google", function(t) {
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawVisualization);
etc etc...
});
您可以自定义间隔。这是一个有用的模式。