2011-03-14 118 views
2

我使用Facebook的XML在我的MVC 3应用程序加载的Facebook评论插件,这样的:的Facebook评论插件

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

的问题是,宽度属性只在像素值呈现出来。我想指定一个百分比宽度。我检查了当Facebook的JavaScript将xml标记渲染为完全限定的HTML时生成的HTML。它用一个内联css指定宽度来吐出一个iframe。 iframe有一个“fb_ltr”类,我尝试了为.fb_ltr改变宽度的CSS规则,但是因为CSS是inline作为style =“”属性,所以这个规则被覆盖。

然后我使用JQuery尝试:

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

但是这并没有工作,要么因为JavaScript需要一段时间的Facebook上做的工作和呈现内容。有没有人曾使用Facebook插件?定制似乎有些复杂。任何人都知道是否有一种方法可以在Facebook脚本呈现出评论iframe后绑定一些jquery?

任何帮助表示赞赏。

回答

3

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

width: 100% !important; 
+0

我会尽力的。 – Chev 2011-03-14 23:09:32

+0

谢谢。我不知道CSS中的'!important'。你解决了我的问题。今晚晚些时候我会接受,这让我等待... – Chev 2011-03-14 23:14:47

+0

这就是我曾经使用过的。它工作正常。 – 2011-05-08 15:13:35

1

尝试load事件附着到facebook的帧:

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

我不知道我可以做到这一点!谢谢:) – Chev 2011-03-14 23:15:20

1

我改变这样的:

<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; }

它的工作...

+0

我尝试过'width =“100%”',并且什么都没做,和'style =“width:100%一样;''。这是css规则'.fb_ltr {width:100%!important;这是它做到的。当JavaScript呈现内容时,FBXML元素上的内联属性和样式不会呈现给包含的iFrame。但'重要'确实会覆盖在渲染iFrame上设置的内联样式,因此我在2天前接受了这个答案。 – Chev 2011-03-17 13:55:26