为什么“google未定义”?当我加载谷歌js api [英] why "google is not defined " when i load google js api

查看:146
本文介绍了为什么“google未定义”?当我加载谷歌js api的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我遵循 api 一步一步,但无法加载成功。



这是我的代码:

 < HTML> 
< head>
< meta name =viewportcontent =initial-scale = 1.0,user-scalable = no/>
< / head>
< body>
< script type =text / javascriptsrc =http://www.google.com/jsapi?autoload=%7B%22modules%22%3A%5B%7B%22name%22%3A% 22gdata%22%2C%22version%22%3A%222.x%22%2C%5B%22callback%22%3A%22onLoad%22%2C%22packages%22%3A%5B%22maps%22%5D%5D% 7D%5D%7D>< /脚本>
< script type =text / javascript>
var service = new google.gdata.maps.MapsService('docs-example');
< / script>
< / body>
< / html>

错误在于:google未定义



<为什么??


$ b $ p upedted


我改变了我的代码,它工作正常,但它激发了errorHandler,然后提醒error !!!:

 < HTML> 
< head>
< meta name =viewportcontent =initial-scale = 1.0,user-scalable = no/>
< / head>
< body>
< script type =text / javascriptsrc =http://www.google.com/jsapi>< / script>
< script type =text / javascript>

//载入最新版本的Google Data JavaScript Client
google.load('gdata','2.x',{packages:['maps']});

函数onGoogleDataLoad(){
//将代码放在这里
}

//客户端加载
google后调用函数.setOnLoadCallback(onGoogleDataLoad);

< / script>
< script type =text / javascript>
var service = new google.gdata.maps.MapsService('docs-example');
listMaps()
函数listMaps(){
var list = document.createElement('ul');
var mapFeedUrl ='http://maps.google.com/maps/feeds/maps/default/owned';

service.getMapFeed(mapFeedUrl,function(feedRoot){
var feed = feedRoot.feed;
var entries = feed.getEntries();
for(var i = 0; i< entries.length; i ++){
var entry = entries [i];
var mapTitle = entry.getTitle()。getText();
var listItem = document.createElement('li');
var listText = document.createTextNode(mapTitle);
listItem.appendChild(listText);
list.appendChild(listItem);
}
document.body.appendChild(list);
},errorHandler)
}
function errorHandler(){
alert('error !!!')
}
< / script>
< / body>
< / html>

为什么?



谢谢

解决方案

您应该在GoogleDataLoad()函数中对以确保API在完成加载之前不会启动。

  onGoogleDataLoad(){
var service =新的google.gdata.maps.MapsService('docs-example');
listMaps()
}


i follow the api step by step,but can't load successful..

this is my code:

<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
</head>
<body >
<script type="text/javascript" src="http://www.google.com/jsapi?autoload=%7B%22modules%22%3A%5B%7B%22name%22%3A%22gdata%22%2C%22version%22%3A%222.x%22%2C%5B%22callback%22%3A%22onLoad%22%2C%22packages%22%3A%5B%22maps%22%5D%5D%7D%5D%7D"></script>
<script type="text/javascript">
var service = new google.gdata.maps.MapsService('docs-example');
</script>
</body>
</html>

the error is :google is not defined

why ??


upedted

i change my code,and it worked,but it fire the errorHandler and then alert "error!!!":

<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
</head>
<body >
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">

  // Load the latest version of the Google Data JavaScript Client
  google.load('gdata', '2.x', {packages: ['maps']});

  function onGoogleDataLoad() {
    // Put your code here
  }

  // Call function once the client has loaded
  google.setOnLoadCallback(onGoogleDataLoad);

</script>
<script type="text/javascript">
var service = new google.gdata.maps.MapsService('docs-example');
listMaps()
function listMaps() {
  var list = document.createElement('ul');
  var mapFeedUrl = 'http://maps.google.com/maps/feeds/maps/default/owned';

  service.getMapFeed(mapFeedUrl, function(feedRoot) {
    var feed = feedRoot.feed;
    var entries = feed.getEntries();
    for (var i = 0; i < entries.length; i++) {
      var entry = entries[i];
      var mapTitle = entry.getTitle().getText();
      var listItem = document.createElement('li');
      var listText = document.createTextNode(mapTitle);
      listItem.appendChild(listText);
      list.appendChild(listItem);
    }
    document.body.appendChild(list);
  }, errorHandler)
}
function errorHandler(){
    alert('error!!!')
    }
</script>
</body>
</html>

why ?

thanks

解决方案

you should put any call to the google stuff inside the onGoogleDataLoad() function to make sure it is not launched before the APIs have finished loading.

function onGoogleDataLoad() {
  var service = new google.gdata.maps.MapsService('docs-example');
  listMaps()
}

这篇关于为什么“google未定义”?当我加载谷歌js api的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆