【问题标题】:Why does a simple google.load('visualization....call throw an error?为什么简单的 google.load('visualization....调用会抛出错误?
【发布时间】:2015-01-15 21:15:50
【问题描述】:

我只是想加载谷歌可视化包,这样我就可以查询一个融合表来找到一些地图边界。

以下是导致问题的四行代码:

   <script src="https://www.google.com/jsapi"></script>
   <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
   <script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script><script>

    google.load('visualization', '1', {'packages':['corechart', 'table', 'geomap']}, callback:function() { alert('!'); }});

如果我注释掉 google.load,一切都很好,但除此之外,即使它是从这个工作代码示例复制的,上述内容也不起作用:Google Maps API - Zoom to Fusion Table Layer Query Results

最终我想从参考 SO 帖子中实现 zoomTo() 函数,但我什至无法运行 google.load 函数而我的所有 javascript 都失败了。

scriptInjector.js:188 sI: about to establish extension connection for WIDGET_CONTENT_MESSAGE - url: http://gfsfshfs8/hmap.php
scriptInjector.js:191 sI: adding WIDGET_CONTENT_MESSAGE message listener
reservespaceifenabled.js:5 rsie: reserveSpace
reservespaceifenabled.js:7 rsie: getToolbarData
reservespaceifenabled.js:66 rsie: leaving js
hmap.php:99 Uncaught SyntaxError: Unexpected token :
reservespaceifenabled.js:15 rsie: getToolbarDataCallback(Arguments[1])
reservespaceifenabled.js:25 rsie: window.toolbarData: Object
reservespaceifenabled.js:26 rsie: window.Content: undefined
reservespaceifenabled.js:35 rsie: getToolbarDataCallback - done
contentScript.js:42 cS: logger: Array[1] : undefined
contentScript.js:42 cS: logger: Array[1]0: Array[1]length: 1__proto__: Array[0] : undefined
contentScript.js:42 cS: logger: Array[1] : document ready
contentScript.js:42 cS: logger: Array[1] : running callback
contentScript.js:42 cS: logger: Array[1] : undefined
contentScript.js:42 cS: logger: Array[1] : firing tab complete
contentScript.js:80 cS: sending TAB_COMPLETE

【问题讨论】:

    标签: javascript google-visualization


    【解决方案1】:

    您正在导入不正确的 google JS 包。您导入的地图 API 不包含可视化包。将您的谷歌导入更改为:

    <script src="https://www.google.com/jsapi</script>
    

    它应该可以工作。这是一个有效的JSFiddle

    【讨论】:

    • 感谢您的评论。你完全正确。问题是我试图在此处复制该技术:stackoverflow.com/questions/27832734/… 但一旦我再次扩展 google.load 以包含新包,我再次出现空白屏幕。特别是,这会生成一个空白屏幕:stackoverflow.com/questions/27832734/…,尽管它显然在另一个 SO 问题中起作用。
    • 在这种情况下,您只需要包含这两个文件。请记住,在许多情况下,不同的包将是不同的脚本。因此,请确保包含与您的包匹配的所有脚本。
    • 抱歉再问一次,但如果我已经完全加载了 SO 参考中的内容,为什么它不能工作?我在哪里可以找到与 js 源代码匹配的包?我才刚刚开始,我发现很难浏览 google API 文档。例如,如果我在这里搜索“表”developers.google.com/loader,我什么也找不到。我在哪里可以找到从远程谷歌源加载的“表”需要什么?感谢您的任何意见。
    • 具体是哪个包失败了? Maps 独立于 jsapi。
    • 以下所有失败:google.load('visualization', '1', {'packages':['corechart', 'table', 'geomap']}, callback:function( ) { alert('!'); }});, google.load('visualization', '1', {'packages':['corechart', 'table', 'geomap']}, callback:function( ) { alert('!'); }});, google.load('visualization', '1', {'packages':['corechart', 'geo']}, callback:function() { alert( '!'); }}); 等。我加载的任何包组合都会失败。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 2018-12-10
    • 2019-06-13
    • 2021-06-17
    相关资源
    最近更新 更多