2011-05-12 15 views

Respuesta

10

De hecho, el problema es que las páginas usan scripts diferentes para cargar el módulo FBConnect.

En http://www.thegreekmerchant.com/:

<div id="fb-root"></div> 
    <script type="text/javascript"> 
    window.fbAsyncInit = function() { 
     FB.init({ 
     appId : '146943825373452', 
     status : true, // check login status 
     cookie : true, // enable cookies to allow the server to access the session 
     xfbml : true, 
     logging: '0' 
     }); 

     jQuery(document).trigger('fb:init'); 
    }; 

    (function() { 
     var e = document.createElement('script'); 
     e.src = document.location.protocol + '//connect.facebook.net//all.js'; 
     e.async = true; 
     document.getElementById('fb-root').appendChild(e); 
    }()); 
    </script> 

En http://www.thegreekmerchant.com/product/fokofpolisiekar/band-logo hay dos guiones, el anterior y el siguiente:

<div id="fb-root"></div><script type="text/javascript"> 
window.fbAsyncInit = function() { 
    FB.init({ 
    appId: "146943825373452", 
    status: true, 
    cookie: true, 
    xfbml: true 
    }); 

    FB.Event.subscribe("edge.create", function(href, widget) { 
     _gaq.push(["_trackEvent", "Facebook like", "Drupal", href]); 
    }); 


}; 
(function() { 
    var e = document.createElement('script'); 
    e.async = true; 
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
    document.getElementById('fb-root').appendChild(e); 
}()); 
</script> 

He reemplazado el primer guión con la segunda y ahora http://www.thegreekmerchant.com/ funciona (por supuesto, no la versión nítida, pero en mi servidor sandbox). Solo necesita el segundo script en http://www.thegreekmerchant.com/product/fokofpolisiekar/band-logo.

+0

¿No significa para añadirlo a la otra página, ya que esa página ya funciona ... – coderama

+0

@RD De hecho, no necesita cambiar 'http: // www.thegreekmerchant.com/product/fokofpolisiekar/band-logo', pero, sin embargo, lo recomiendo encarecidamente.Esta página tiene los dos guiones FB mostrados en mi respuesta, y es redundante (especialmente al ver que el primer guión no funciona). Cuando se trata de 'http: // www.thegreekmerchant.com /', debe cambiar la primera parte del código de mi respuesta a la segunda parte del código. – AndersTornkvist

7

En la página de trabajo que tienen este marcado:

<div id="fbconnect_button-wrapper" class="form-item"> 
    <fb:login-button v="2" background="dark" onlogin="facebook_onlogin_ready();" size="small"> 
    <a class="fb_button fb_button_small"> 
     <span class="fb_button_text">Facebook Connect</span> 
    </a> 
    </fb:login-button> 
    <div class="description">Sign in using Facebook</div> 
</div> 

Mientras que en el que no trabaja usted tiene esto:

<div id="fbconnect_button-wrapper" class="form-item"> 
    <fb:login-button v="2" background="dark" onlogin="facebook_onlogin_ready();" size="small"> 
    Facebook Connect 
    </fb:login-button> 
    <div class="description">Sign in using Facebook</div> 
</div> 

supongo, que el JavaScript crear el marcado no se ejecuta correctamente. Tal vez tenga otro error de JavaScript antes de la ejecución del script del botón FB. Use Firebug o una herramienta similar para descubrirlo.

Sin más información, es difícil de ayudar.

2

los botones están ambos no trabajan para mí en cromo, mientras que en el primer enlace de Firefox está funcionando y no el segundo ...

la cosa es que la página de inicio de Firefox es el envío de la carga de la CPU al 100 %, y veo que tienes muchos javascripts en el hogar. Intentaría deshabilitar otros javascripts y, finalmente, ejecutar una comprobación en el origen de la página para ver si hay algún contenido roto.

2

de error Usted está en:

(function() { 
     var e = document.createElement('script'); 
     e.src = document.location.protocol + '//connect.facebook.net//all.js'; 
     e.async = true; 
     document.getElementById('fb-root').appendChild(e); 
    }()); 

La línea:

e.src = document.location.protocol + '//connect.facebook.net//all.js'; 

debería ser algo así como

e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 

Si ver el archivo de all.js que sus descargas del navegador verás un error

Así, las secuencias de comandos FB no se cargan, y por lo tanto el interior de su window.fbAsyncInit = function() Nunca se llama ..

+0

, pero ¿cómo es que funciona en una página? – coderama

+0

@RD Esto se debe a que hay dos scripts en la página de trabajo, vea mi respuesta. – AndersTornkvist

+0

Además, no puedo encontrar este código al que te refieres en cualquier lugar. – coderama

Cuestiones relacionadas