2012-10-13 13 views
10

Sto cercando di usare google + api, e ho dovuto modificare l'esempio del campione di autenticazione per soddisfare le mie esigenze in questo modo:Perché "gapi.client" di Google Plus Api non è definito?

<script src="https://apis.google.com/js/client.js"></script> 

Invece di questo:

<script src="https://apis.google.com/js/client.js?onload=handleClientLoad"></script> 

Fondamentalmente rimosso il parametro onload, e ha messo tutte le funzionalità su dom ready.

qui è il problema che ho appena non capisco:

Codice:

console.log(gapi); 
console.log(gapi.client); 

$.each(gapi, function(){ 

     console.log(this); 

}); 

gapi.client.setApiKey(this.options.apiKey); 

uscita:

enter image description here

Quindi, la mia domanda è sostanzialmente:

Perché su console.log (gapi) mostra che ha su b-oggetti come client e auth, e su console.log (gapi.client) dice undefined?

risposta

10

È necessario utilizzare il parametro? Callback onload, chiamato quando il client JS ha terminato il caricamento in modo asincrono. Eseguendo su dom ready, stai tentando di accedere a gapi.client prima che sia stato definito. Quello che sta succedendo è che lo script /js/client.js definisce gapi e alcune funzioni di supporto, ma gapi.client e gapi.auth non sono definiti fino a quando il client JS non ha terminato il caricamento. Quando si ispeziona l'oggetto registrato da console.log (gapi), il client ha terminato il caricamento, quindi è possibile visualizzare gapi.client e gapi.auth.

Problemi correlati