Jus*_*tin 5 javascript asp.net google-chrome google-visualization
这就是它,这个电话似乎绝对没有.
如果我在Chrome中调试页面,请在调用后立即设置断点
google.load('visualization', '1.0', { packages: ['corechart', 'bar', 'table'] });
Run Code Online (Sandbox Code Playgroud)
并且字面上等待5-10秒以完成装载,然后继续,这很好.否则,如果我让'setOnLoadCallback'尝试做它的事情,它会抛出
'未捕获的TypeError:无法读取属性'DataTable'的未定义'
抛出错误:
var data = new google.visualization.DataTable();
Run Code Online (Sandbox Code Playgroud)
编辑:
我还应该注意到,在我打电话的所有例子中
google.setOnLoadCallback(drawChart);
Run Code Online (Sandbox Code Playgroud)
所有示例如上所述,不包括函数末尾的括号'()',即
google.setOnLoadCallback(drawChart());
Run Code Online (Sandbox Code Playgroud)
然而,它实际上对我有用的唯一方法是使用括号,但是没有人们包含括号的示例.
dav*_*rad 11
google.setOnLoadCallback(drawChart())(带着paranthesis)根本不应该工作,所以听起来有点奇怪.setOnLoadCallback期望它可以调用的函数的名称,而不是函数的执行.
setOnLoadCallback是一般的谷歌功能.它也是由google.load("jquery", "1.9.1")等等触发的.可能是你的代码中的某个地方被另一个库加载并由之google.load()触发你的setOnLoadCallBack过早.
因此,要确保在加载可视化库时实际触发回调,而不是通过其他内容触发,您可以直接设置回调load()而不是依赖setOnLoadCallback():
google.load('visualization', '1.0',
{ packages: ['corechart', 'bar', 'table'], callback: drawChart });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5789 次 |
| 最近记录: |