2016-04-28 2 views
1

ich einfache Google-Anmeldeschaltfläche in google sign-in docs, Auth funktioniert wie beschrieben bin die Umsetzung, aber in der Konsole habe ich den Fehler:Google-Anmeldung api versuchen unexisting DOM-Element zugreifen

cb=gapi.loaded_0:247 Uncaught TypeError: Cannot read property 'style' of nullG_ 
@ cb=gapi.loaded_0:247(anonymous function) 
@ cb=gapi.loaded_0:251(anonymous function) 
@ cb=gapi.loaded_0:145c.port1.onmessage 
@ cb=gapi.loaded_0:72 

nach Inspektion in die minimierte google Code, es sieht aus wie es versucht unexisting DOM-Elemente zuzugreifen:

document.getElementById("not_signed_in"+a.El) 
//it prints: "not_signed_invrnlb3wwqpsh" 

die auth funktioniert, aber der Fehler beeinflusst mich, wenn ich versuche, das gleiche Code innerhalb einer Angularjs App zu nutzen. Dies ist die einfache HTML-Code, um den Fehler zu reproduzieren:

<html> 
<head> 
<script src="https://apis.google.com/js/platform.js" async defer></script> 
<meta name="google-signin-client_id" content="MY_APP_ID.apps.googleusercontent.com"> 
</head> 
<body> 
<script type="text/javascript"> 
function onSignIn(googleUser) { 
    console.log('Name: ' + profile.getName()); 
} 
</script> 
<p>please sign in</p> 
<div class="g-signin2" data-onsuccess="onSignIn"></div> 
</body> 
</html> 

Antwort

0

Ich vermute, es verursacht wird, durch asynchrones Verhalten durch Winkel (oder andere Rahmenbedingungen könnten verhalten sich ähnlich). Wenn das der Fall ist, würde ich empfehlen, die Schaltfläche manuell darzustellen, anstatt .g-signin2 zu verwenden.

Mit gapi.signin2.render() ist die einfachste Möglichkeit, Steuerelement Rendern Timing zu steuern. https://developers.google.com/identity/sign-in/web/build-button#customizing_the_automatically_rendered_sign-in_button_recommended

Sie können aber auch .attachClickHandler() verwenden, um die Anmeldefunktion für Ihre benutzerdefinierte Schaltfläche zu aktivieren. https://developers.google.com/identity/sign-in/web/build-button#building_a_button_with_a_custom_graphic

Verwandte Themen