首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Facebook评论不会出现在extjs容器中

Facebook评论不会出现在extjs容器中
EN

Stack Overflow用户
提问于 2015-11-25 17:45:57
回答 1查看 161关注 0票数 0

我想将Facebook评论添加到一个extjs容器中。我创建了一个视图,它是一个容器,里面有一个div:

代码语言:javascript
复制
Ext.define('recovery.view.FacebookComment', {

    extend: 'Ext.container.Container',
    xtype: 'facebook-comments',

    requires: [
        'Ext.container.Container'
    ],

    items: [{
        xtype: 'container',
        width: '100%',
        height: 300,
        style: {
            borderColor  : 'green',
            borderStyle  : 'dotted'
        },
        autoScroll: true,
        listeners: {
            beforerender: function (container) {
                // Facebook SDK

                var html = '<div class="fb-comments" data-href="https://recovery.twindb.com" data-width="600" data-numposts="5"></div>';

                (function(d, s, id) {
                    var js, fjs = d.getElementsByTagName(s)[0];
                    if (d.getElementById(id)) {
                        console.log('SDK is already created:');
                        console.log(d.getElementById(id));
                        return;
                    }
                    js = d.createElement(s); js.id = id;
                    js.src = "//connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v2.5";
                    fjs.parentNode.insertBefore(js, fjs);
                    // container.update(html);
                }(document, 'script', 'facebook-jssdk'));
                Ext.Function.defer(function () {
                    container.update(html);
                }, 1000);
            },
        }
    }]

});

我看到SDK已经加载:

还创建了一个<script>标记:

还创建了一个<div>

但这些评论并没有出现:

这个问题是暂时的,有时评论确实会出现,这取决于什么时候加载SDK。

这里有什么问题吗?有什么解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-28 22:24:25

在写了一些模拟你的问题的花招之后,我注意到我也有同样的问题。经过一些检查和尝试,我注意到我的控制台中有一个错误是由facebook js引起的。

代码语言:javascript
复制
Error: invalid version specified

经过一些研究,我发现了关于SO的一个解决方案

我做了一个简单的调整,并改变了路线: 从//connect.facebook.net/en_GB/sdk.js到: //connect.facebook.net/en_GB/all.js

在这里,您可以找到一个正在工作的Sencha Fiddle:

https://fiddle.sencha.com/#fiddle/11p2

https://fiddle.sencha.com/fiddle/11p2/preview

来自Sencha Fiddle的代码:

代码语言:javascript
复制
/*
 * I wrote this example using the Ext.Loader object
 */
Ext.Loader.setConfig({
    enabled: true,
    disableCaching: true
});

/*
 * NOTE: I changed sdk.js to all.js to make it work
 * 
 * I was getting an error from facebook sdk: Error: invalid version specified
 * See: https://stackoverflow.com/a/28578154/408487
 */
Ext.Loader.loadScript('//connect.facebook.net/en_GB/all.js#xfbml=1&version=v2.5');

Ext.application({
    name : 'Fiddle',

    launch : function() {
        Ext.create('Ext.Container', {
            xtype: 'container',
            height: 300,
            style: {
                borderColor  : 'green',
                borderStyle  : 'dotted'
            },

            /* I hate it that I can't use autoEl, but have to add another div through the html property */
            /*autoEl: {
                tag: 'div',
                'data-href': 'https://recovery.twindb.com',
                'data-width': '600',
                'data-numposts': '5'
            },
            componentCls: 'fb-comments',*/
            html: '<div class="fb-comments" data-href="https://recovery.twindb.com" data-width="600" data-numposts="5"></div>',

            autoScroll: true,
            renderTo: Ext.getBody()
        });
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33923183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档