如果其中一个容器在页面加载时为display:none
,并且稍后在display:block
处显示,则不会显示“赞”按钮插件。
仅在Firefox(我的15.0.1版)中检测到问题。
我该怎么办?
答案 0 :(得分:3)
当你使元素可见时,你应该将你的fb插件添加到dom
IE
<div id="showfb">mouseoverme</div>
<div style="display:none" id="facebutton"></div>
<script>
var fbbutton = document.getElementById("facebutton");
document.getElementById("showfb").onmouseover = function(){
// first visible
fbbutton.style.display='block';
// then add fb html5
fbbutton.innerHTML = '<div class="fb-like" ......... ></div>';
};
</script>
另选择,尝试
width:0;height:0;overflow:hidden
而不是
display:none
和
width:auto;height:auto;overflow:visible
而不是
display:block
答案 1 :(得分:1)
我不知道这个错误的原因是什么(FB或FF),但是我通过默认情况下在FF中显示我的元素来解决这个问题:
@-moz-document url-prefix() {#exe-article-social-tools { display: block; }}
答案 2 :(得分:0)
https://developers.facebook.com/docs/reference/javascript/
fb-root标签
JavaScript SDK要求fb-root元素出现在页面中。 不得使用display:none或visibility:hidden隐藏fb-root元素,否则SDK的某些部分将无法在Internet Explorer中正常工作。
答案 3 :(得分:0)
花了我一整天的时间来弄明白,但是使用“测试用户”登录Facebook会让“赞”按钮看不见。在我的情况下,我总是使用我的测试用户在Firefox上登录,同时使用Chrome中的常规Facebook用户注销/登录(我最初认为这是浏览器问题)。
然而,解决方案就像登录测试用户一样简单。
在FB文档中指出,并非所有功能都为测试用户启用(类似按钮就是其中一个功能),但我认为它至少会被渲染。 无论如何,我希望这有助于某人。
答案 4 :(得分:0)
我的页面上有许多不同的隐形div,隐藏了fb-like
个按钮。当显示div中的一个时,其中不会出现fb-like
按钮。对我来说解决方案是每次看不见的div时手动重新启动FB.init。
FB是一个全局函数,被添加到您的窗口对象中,因为您通过类似http://connect.facebook.net/en_US/all.js
的URL调用远程facebook api。因此,由于这个远程脚本附加到您的DOM,您可以运行类似
FB.init({
appId : '346094915460000', // App ID
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
答案 5 :(得分:0)
您可以动态地将按钮html5代码添加到DOM中,然后再次运行FB解析器以生成类似按钮:
fbbutton.innerHTML = '<div class="fb-like" ... ></div>';
FB.XFBML.parse();