【问题标题】:Facebook feed: FB.ui() working in Firefox but error in Chrome (Safari, IE)Facebook 提要:FB.ui() 在 Firefox 中工作,但在 Chrome 中出错(Safari、IE)
【发布时间】:2011-10-05 11:20:46
【问题描述】:

我为网站设置了自定义 Facebook 分享按钮。当我在 Firefox 中单击该按钮时,它会为我提供一个很好的共享对话框(弹出窗口),其中包含我定义的所有 var。在我的 Facebook 墙上发帖,一切都很好!但相同的代码在 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;
    });

【问题讨论】:

    标签: javascript facebook xfbml


    【解决方案1】:

    我们在新版本的 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>
    

    【讨论】:

      【解决方案2】:

      可能是因为你插入了两次 sdk;在标题和正文中使用异步方法。我有同样的问题。删除了标题中的行,然后它就起作用了。

      【讨论】:

        【解决方案3】:

        我遇到了同样的问题,您的“aync 加载”-答案为我指明了正确的方向。如果您使用的是 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();
            });
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-02-12
          • 2017-06-07
          • 1970-01-01
          • 2017-06-07
          • 2017-07-21
          • 1970-01-01
          相关资源
          最近更新 更多