【问题标题】:Facebook comments pluginFacebook评论插件
【发布时间】:2011-03-14 23:04:55
【问题描述】:

我正在使用 Facebook XML 在我的 MVC 3 应用程序中加载 Facebook cmets 插件,如下所示:

<fb:comments href="@Request.Url.AbsoluteUri" num_posts="15" width="900"></fb:comments>

问题在于 width 属性仅以像素值呈现。我想指定一个百分比宽度。我检查了当 Facebook 的 JavaScript 将 XML 标记呈现为完全限定的 HTML 时生成的 HTML。它吐出一个带有内联css指定宽度的iframe。 iframe 有一个类“fb_ltr”,我尝试为 .fb_ltr 执行 CSS 规则来更改宽度,但由于 css 作为style="" 属性内联,因此该规则被覆盖。

然后我尝试使用 jQuery:

$(function()
{
    $('.fb_ltr').css('width', '100%');
});

但这也不起作用,因为 Facebook JavaScript 需要一段时间才能完成其工作并呈现内容。以前有人用过 Facebook 插件吗?定制似乎有点复杂。有没有办法在 Facebook 脚本渲染出 cmets iframe 后绑定一些 jQuery?

【问题讨论】:

    标签: jquery css asp.net-mvc facebook asp.net-mvc-3


    【解决方案1】:

    如果你可以通过 css 做到这一点,为什么不这样做呢?只需添加 !important ,它将覆盖所有内容。但我怀疑你可以通过css做到这一点。示例 CSS:

    width: 100% !important;
    

    【讨论】:

    • 谢谢。我不知道 CSS 中的 !important。你解决了我的问题。今晚晚些时候我会接受,这让我等待......
    【解决方案2】:

    尝试将load 事件附加到 facebook 框架:

    $("#comments").load( function() {
        $('.fb_ltr').css('width', '100%');
    });
    

    【讨论】:

    • 我也不知道我能做到这一点!谢谢:)
    【解决方案3】:

    我改变了这个:

    <fb:comments href="http://whatever.com" 
    num_posts="10" width="500"></fb:comments>
    

    到这里:

    <fb:comments href="http://whatever.com" 
    num_posts="10" width="100%" style="width:100%"></fb:comments>
    

    并设置以下css:

    iframe.fb_ltr { width:100% !important; }

    成功了……

    【讨论】:

    • 我尝试了width="100%",但没有任何效果,与style="width: 100%;" 相同。这是css规则.fb_ltr { width: 100% !important; }做到了。当 javascript 呈现内容时,FBXML 元素上的内联属性和样式不会呈现到包含的 iFrame。但是!important 确实覆盖了在渲染的 iFrame 上设置的内联样式,因此我在 2 天前接受了答案。
    猜你喜欢
    • 2012-10-11
    • 2012-04-09
    • 2016-04-07
    • 1970-01-01
    • 2011-12-18
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    相关资源
    最近更新 更多