TypeError: 使用 ajax 时 google.load 不是一个函数

2024-05-08

我正在使用 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", 
        "¡" => ";", "'" => "", "\n" => "",'"' => '');
    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,并在绘制数据表后将它们放置在自己的回调函数中:

<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", "¡" => ";", "'" => "", "\n" => "",'"' => '');
    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> 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TypeError: 使用 ajax 时 google.load 不是一个函数 的相关文章

随机推荐

  • 如何转置 3D np 数组中的每个元素

    给定一个 3D 数组 a 我想对其第一个索引中的每个元素调用 np transpose 例如 给定数组 array 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3
  • 光标 .svg 在 Chrome 61.0.3163.100 中不起作用

    我对这个 css 有疑问 我都尝试过auto and default但我仍然看到默认光标 cursor url img extra arrow next svg auto cursor url img extra arrow next sv
  • 使用 Firebase orderByChild 进行不区分大小写的排序

    我正在使用 FirebaseRecyclerAdapter 来显示字符串列表 我的查询使用 orderByChild 结果首先按大写字母排序 如下所示 项目 1 项目 2 项目 3 aItem bItem zItem 如何使用 orderB
  • SQLAlchemy - 连接表关系上的 order_by

    我正在使用声明式 SQLAlchemy 并且有三个模型 Role Permission and RolePermission 在我的Role模型 我有以下内容 class Role Base name Column u NAME VARCH
  • Axios 与 Superagent

    如果我使用Axios https github com mzabriskie axios and 超级经纪人 https github com visionmedia superagent为了依次调用同一个 api 在这两种情况下 我都会首
  • 刷新后,socket.io 客户端多次侦听同一事件

    我得到了一个包含项目表的母版页 成功后表数据将不断刷新socket io与服务器的连接 单击表中的某个项目 该项目的 id 将传递到服务器 时 将使用 ajax 加载子视图 并通过侦听来自服务器的事件不断刷新该子视图 现在的问题是 通过选择
  • D3:如何在Groups of Force布局节点上绘制多个凸包?

    我试图在力布局中的所有组上绘制凸包 但我只画出了一半的凸包 当 D3 尝试绘制其余的船体时 控制台返回错误 元素尚未创建 然而 当我检查控制台中的 groups 变量时 所有组数据都在那里 x y 数据都设置得很好 见下图 我什至尝试在ti
  • 在应用程序窗口外检测 StylusDown

    简单的问题 希望答案不会是 你不能 我如何 在代码中 订阅 全局 手写笔按下事件 Windows 7 显然以某种方式做到了这一点 因为只要我使用手写笔 wacomm 笔和触摸 但这似乎无关紧要 就会出现小平板电脑图标 我想创建一个简单的绘图
  • Joomla 模型视图控制器 (MVC) 如何工作?

    我是 Joomla 的新手 我想知道 Joomla 控制器如何将数据传递给模型 模型传递给控制器 以及控制器传递给视图 虽然这可能是一个愚蠢的问题 但我确实试图找到答案 我希望我能从 stackoverflow 大家庭得到一些帮助 控制器获
  • ElasticSearch - 仅获取与搜索响应中所有顶级字段匹配的嵌套对象

    假设我有以下文档 id 1 name xyz users name abc surname def name xyz surname wef name defg surname pqr 我只想获取与搜索响应中的所有顶级字段匹配的嵌套对象 我
  • Ecto 中按日期时间查询

    这是我尝试过的 date Ecto DateTime from erl calendar universal time query gt where record record deadline gt date 我也尝试过 date Ect
  • 如何公开具有隔离范围的指令的行为?

    如何公开指令中的方法 我知道我应该使用数据属性 但我真的想公开behavior not data 父控制器可以调用的东西 假设我的 DOM 如下所示 div div div div
  • 有没有一种巧妙的方法来获取表示层中背景图像的归属?

    我有一张由 CSS 引入的 CC BY 图像 用作背景 这张图片纯粹是为了它的外观 绝对不是内容 我需要在某个地方对此图像进行归属 显然最好将此归属链接到提供该图像的好心人 但是 我真的不想将链接文本放入 HTML 中 因为这会破坏实际内容
  • openssl_pkey_get_public 未打开公钥,“无起始行”错误

    当生成公钥然后用函数读取它时openssl pkey get public publicKeyResource bool false 和消息 错误 0906D06C PEM 例程 PEM read bio 无起始行 privateKey o
  • 向量迭代器的索引

    所以我有一个基本的向量迭代器 它看起来像 for std vector
  • 引用 MongoDB Aggregation Pipeline 中的整个文档

    我可以使用 运算符引用 MongoDB 聚合管道中属性的各个值 但是 我如何访问 引用 整个文档 UPDATE 提供一个示例来解释场景 这是我正在尝试做的事情的一个例子 我有一系列推文 每条推文都有一个成员 集群 它指示特定推文属于哪个集群
  • ASP.NET Web API 中处理程序和过滤器的依赖注入

    我正在尝试连接我的 Web Api 项目以使用 Castle Windsor 进行 IoC 我已经通过以下方式为我的控制器做到了这一点这篇优秀的文章 http blog ploeh dk 2012 10 03 DependencyInjec
  • jquery如何捕获动态生成按钮的点击事件

    我看到有这个语法用于检测任何按钮单击 但是如果我只想检测页面上的特定按钮怎么办 编辑 这对于开始时设置的按钮来说似乎很好 但在我的例子中 我使用 jquery 动态创建它们 看来这些按钮没有击中此代码 有任何想法吗 您需要将 click 绑
  • THREE.JS,忽略父级的轮换

    我试图使子对象跟随父级位置并表现得像一个普通的子对象 但是我希望它保持其旋转不变 在不影响性能的情况下 最好的方法是什么 我的CPU预算很紧张 已经运行了2个工作线程并且有很多对象 是否有设置只允许孩子的位置受到影响 同样重要的是 当父级旋
  • TypeError: 使用 ajax 时 google.load 不是一个函数

    我正在使用 Google 图表 termcloud 来显示一些数据 我可以让它作为页面上的静态功能正常工作 但是当我尝试通过 ajax 加载图表及其资产时 它似乎一直抛出错误 TypeError google load is not a f