Фид Facebook: FB.ui () работает в Firefox, но ошибка в Chrome (Safari, IE) - PullRequest
1 голос
/ 14 июля 2011

Я настроил настраиваемую кнопку общего доступа Facebook для веб-сайта.Когда я нажимаю эту кнопку в Firefox, она предоставляет мне хороший диалог (всплывающее окно) со всеми опциями, которые я определил.Посты на моей стене в фейсбуке, все приятно!Но тот же код не работает в Chrome, Safari, IE.Во всплывающем окне выдается сообщение об ошибке: «Произошла ошибка. Пожалуйста, повторите попытку позже».

Используемый мной javascript (наряду с мета-тегами OG в заголовке): Сайт, на котором я используюэтот скрипт: http://www.henkeningrid.org (кнопка Like активируется при нажатии на цитату)

        el.find('a.facebook-feed').click(function() {
        var quote = $(this).parents().find('h1').html();
        var url = $(this).parents('article').attr('data-url');
        var publish = {
            method: 'feed',
            message: '',
            name: 'Henk en Ingrid',
            caption: '“'+quote+'”',
            description: ('De wereld volgens Henk en Ingrid.'),
            link: 'http://www.henkeningrid.org/nl/quote/'+url,
            picture: 'http://www.henkeningrid.org/site/gfx/fb_preview.png',
            actions: [{name: 'Henk en Ingrid', link: 'http://www.henkeningrid.org/'}],
            user_message_prompt: ''
        };
        FB.ui(publish);
        //return false;
    });

Ответы [ 3 ]

1 голос
/ 10 февраля 2012

У нас была эта проблема и с новой версией JavaScript SDK - странно, что это происходит только в Chrome, но решение, действительно, заключалось в удалении синхронной версии SDK. Мы сохранили асинхронный код, и он исправил проблему, которую мы видели во всех браузерах.

<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=XXXXXX";
        fjs.parentNode.insertBefore(js, fjs);
    } (document, 'script', 'facebook-jssdk'));
</script>
1 голос
/ 16 ноября 2011

вероятно, потому что вы вставили SDK дважды; в заголовке и в теле, используя асинхронный метод. У меня такая же проблема. убрал строку в шапке и потом все заработало.

0 голосов
/ 23 декабря 2013

У меня была такая же проблема, и ваш "aync loading" -ответ указал мне правильное направление. Если вы используете jQuery, я предлагаю использовать обратный вызов, как описано здесь: https://developers.facebook.com/docs/javascript/howto/jquery/ Работал на меня!

$(document).ready(function() {
    $.ajaxSetup({ cache: true });
    $.getScript('//connect.facebook.net/en_UK/all.js', function(){
        FB.init({
            appId: '<?=FACEBOOK_APP_ID?>'
        });
        alert('FB loaded');
        yourFunction();
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...