2013-09-17 4 views
3

Я создаю приложение для рельсов, и мне не удается получить кнопку Facebook Share для отображения в Chrome или Firefox. Он отлично проявляется в IE и Safari. Кнопки Like и Login работают нормально во всех браузерах. Я искал в Интернете, но не могу найти ничего полезного.Кнопка Facebook Share не отображается в Chrome

На каждой странице у меня есть

<!-- Facebook SDK --> 
<div id="fb-root"></div> 
<script> 
window.onload = function() 
{ 
    // Additional JS functions here 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : 'XXXXXXXXXXXXXXX', // App ID 
     channelUrl : '//localhost:3000/channel.html', // Channel File 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
    }); 

    (function(d){ 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
    }(document)); 

} 

На странице я хочу кнопку Share, чтобы появиться, я

<fb:share-button type="button_count"></fb:share-button> 

За предложение Адама я создал файл HTML. Кнопку Войти появляется, но кнопка доли не

<!DOCTYPE HTML> 
<HTML xmlns:fb="http://ogp.me/ns/fb#"> 
<HEAD> 
    <TITLE>Untitled HTML Document</TITLE> 
</HEAD> 

<BODY BGCOLOR="white"> 
<div id="fb-root"></div> 

<script> 

    (function(d, s, id) { 
var js, fjs = d.getElementsByTagName(s)[0]; 
if (d.getElementById(id)) return; 
js = d.createElement(s); js.id = id; 
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=MY_APP_ID"; // APP ID 
fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 

</script> 
FB 
<fb:share-button type="box_count"></fb:share-button> <br> 
<div class="fb-login-button" data-width="200"></div> 
</BODY> 
</HTML> 

ответ

5

кажется проблема была со мной, используя localhost как мой url. Я изменил файл/etc/hosts, так что fakeurl.com указывает на 127.0.0.1, и теперь он отлично работает.

0

Добавить xmlns:fb="http://ogp.me/ns/fb#" к вашему <HTML> тегу:

<html xmlns:fb="http://ogp.me/ns/fb#"> 

Изменить ваш <script>

(function(d, s, id) { 
var js, fjs = d.getElementsByTagName(s)[0]; 
if (d.getElementById(id)) return; 
js = d.createElement(s); js.id = id; 
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=YOUR_APP_ID"; // APP ID 
fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 

Live demo

+0

Он по-прежнему не отображается в Chrome или Firefox – Will

+0

Я вставил свою часть кода, обрабатывая это в jsfiddle.net, и кнопка отображается в порядке. Интересно, если это настройка браузера или какой-либо другой код кода – Will

+0

Он отлично работает со мной на WAMP и Chrome & Firefox. –

Смежные вопросы