我正在尝试使用google + api,我不得不修改示例身份验证示例以满足我的需求:
<script src="https://apis.google.com/js/client.js"></script>
而不是:
<script src="https://apis.google.com/js/client.js?onload=handleClientLoad"></script>
基本上删除了onload参数,并将所有功能放在dom上。
这是我不明白的问题:
代码:
console.log(gapi);
console.log(gapi.client);
$.each(gapi, function(){
console.log(this);
});
gapi.client.setApiKey(this.options.apiKey);
输出:
所以,我的问题主要是:
为什么在console.log(gapi)它显示它有像client和auth这样的子对象,而在console.log(gapi.client)它表示未定义?
答案 0 :(得分:11)
必须使用?onload callback参数,当JS Client异步加载完成时调用它。通过在dom上运行,你可以在定义之前尝试访问gapi.client。发生的事情是/js/client.js脚本定义了gapi和一些辅助函数,但是直到JS客户端加载完成后才定义gapi.client和gapi.auth。当您检查console.log(gapi)记录的对象时,客户端已完成加载,因此您可以看到gapi.client和gapi.auth已定义。