Facebook iframe显示在页面中间,为空 今天我在WordPress博客上注意到,脸谱网iFrAME在我的页面中间显示为一个空白的边框。

Facebook iframe显示在页面中间,为空 今天我在WordPress博客上注意到,脸谱网iFrAME在我的页面中间显示为一个空白的边框。,facebook,wordpress,Facebook,Wordpress,问题在于,当Facebook的JS注入内容时,最终会出现一个div: <div id="fb-root" class=" fb_reset"> <div style="position: absolute; top: -2000px;"> ...iframes here... </div> </div> …如果我在这里。。。 “Top-:2000 PX”不足以让它脱离可见屏幕,所以它被卡在页面的中间。 有办法解

问题在于,当Facebook的JS注入内容时,最终会出现一个div:

<div id="fb-root" class=" fb_reset">
    <div style="position: absolute; top: -2000px;">
        ...iframes here...
    </div>
</div>

…如果我在这里。。。

“Top-:2000 PX”不足以让它脱离可见屏幕,所以它被卡在页面的中间。

有办法解决这个问题吗?我可以做一些骇客般的事情,比如隐藏#fb根元素或将其从屏幕上挤出。这就是我的代码中实际存在的一个div——其余的,包括令人不快的样式属性,都是由FB的代码注入的

我的代码如下所示:

<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";
                      fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div class="fb-like" data-href="(actual URL here)" data-send="false"
        data-layout="button_count" data-width="150" data-show-faces="false"></div> 

(功能(d、s、id){
var js,fjs=d.getElementsByTagName[0];
if(d.getElementById(id)){return;}
js=d.createElement;js.id=id;
js.src=“//connect.facebook.net/en_US/all.js#xfbml=1”;
fjs.parentNode.insertBefore(js,fjs);
}(文档“脚本”、“facebook jssdk”);

看起来Facebook修复了这个bug,因为问题已经消失。

我也注意到了这个bug。但还没有确定

此错误与wordpress无关。我在magento看到了同样的行为。当facebook iframe位于页面底部且页面长度超过2000px时,就会发生这种情况。这也是我没有在任何一页上提到它的原因


有人知道如何解决这个问题吗?我不想等待Facebook的解决方案。

上周我在vBulletin论坛上注意到了同样的问题,但今天我再次检查,iFrame完全消失了。空div“fb root”仍然存在。

我也有这个问题。我把它放在一个相对位置的元素里,放在我的博客帖子下面。但当我在开始标记后移动它时,问题就解决了。

我也注意到了这一点。希望这是一个错误,他们会很快修复。是的,这就是我想知道的…这是一个错误,还是我做错了什么?我已经很长一段时间没有改变任何东西了,所以我不认为这是我做的事情。我不认为这是你做的事情,我认为这是一个错误。它肯定在我们的网站上得到了修复。如果它出现在你的页面上,修复它的方法是找出出现的元素(检查页面)并放入你自己的CSS来移动元素。我在原来的问题中提到这一点。在我的例子中,它是#fb根元素。现在他们似乎改变了一些东西,因此#fb root元素不包含有问题的div。但是在任何情况下,您都应该能够通过使用自己的CSS隐藏元素来临时修复它,至少在fb更改HTML和CSS之前是这样。不,它仍然存在-但是添加
.fb\u reset iframe{border:0px none;width:0px;height:0px}
你的css应该可以解决这个问题(除非它打开了另一罐蠕虫)。它在我们的网站上仍然很好,所以我现在不添加任何css。这完全取决于页面的高度。.fb_reset iframe“中的最高值的初始设置是-10000px,例如在我的“所有产品”页面上,其中“喜欢”按钮出现在最底部,并且肯定扩展了10000 px,一个带边框的矩形显示在中间某个地方。最好的解决方案ATM是不添加上面提到的,而是“剪辑:ReCt(0px 0px 0px 0px))。初始的“宽度:0px;高度:0px”不影响iFrAMs,并且剪切的iFrAMe对于脚本仍然是可见的。(虽然从人的角度看是隐藏的)