I believe you will be prevented from loading the facebook script with
GWT due to the browser single source policy. The other suggestions I
think are your best option for loading the script - of course you can
always call init from GWT.

On Mar 14, 9:46 am, Simon M <[email protected]> wrote:
> Yes that would be easier but I don't want to load the Facebook
> javascript everytime, only when it is needed.
>
> I think the issue happened because the FB object was called before the
> script was loaded.
>
> So I added some code to wait until the code is loaded:
>
> private native void initFacebook(String fbAppId) /*-{
> var fbroot = $doc.createElement('div');
> fbroot.setAttribute('id', 'fb-root')
> $doc.body.appendChild(fbroot);
>
> var script = $doc.createElement("script");
> script.src = "http://connect.facebook.net/en_US/all.js";;
> script.type = "text/javascript";
> $doc.body.appendChild(script);
>
> function callback() {
> $wnd.FB.init({
> appId : fbAppId,
> status : true, // check login status
> cookie : true, // enable cookies to allow the server to access the session
> xfbml : true
> // parse XFBML});
>
> $wnd.FB.login(function(response) {
>   if (response.session) {
>     $wnd.Alert("Logged in");
>   } else {
>     $wnd.Alert("Cancelled");
>   }});
> }
>
>  if (script.readyState) { //IE
> script.onreadystatechange = function() {
> if (script.readyState == "loaded"
> || script.readyState == "complete") {
> script.onreadystatechange = null;
> callback();}
> };
> } else { //Others
>
> script.onload = function() {
> callback();
>
> };
> }
> }-*/;
>
> I guess I need to add some timeout management here, and cleanup as well ...
>
> If anyone has other advise I would be happy to hear it.

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to