Like 按钮插件不会出现,如果它的容器之一是display:none
页面加载时,并且稍后使用display:block
.
仅在 Firefox(我的版本 15.0.1)中检测到问题。
我能做些什么?
Like 按钮插件不会出现,如果它的容器之一是display:none
页面加载时,并且稍后使用display:block
.
仅在 Firefox(我的版本 15.0.1)中检测到问题。
我能做些什么?
当你使元素可见时,你应该将你的 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
我不知道这个错误(FB 或 FF)的原因是什么,但我已经通过仅在 FF 中默认显示我的元素来解决这个问题:
@-moz-document url-prefix() {#exe-article-social-tools { display: block; }}
https://developers.facebook.com/docs/reference/javascript/
fb-root 标签
JavaScript SDK 要求页面中存在 fb-root 元素。不得使用 display: none 或 visibility: hidden 隐藏 fb-root 元素,否则 SDK 的某些部分将无法在 Internet Explorer 中正常工作。
我花了一整天的时间才弄明白,但是使用“测试用户”登录 Facebook 会使点赞按钮不可见。就我而言,我总是在 Firefox 上使用我的测试用户登录,而在 Chrome 中使用我的常规 Facebook 用户注销/登录(我最初认为这是浏览器问题)。
但是,解决方案就像注销测试用户一样简单。
在 FB 文档中指定并非所有功能都为测试用户启用(类似按钮是这些功能之一),但我认为它至少会被渲染。无论如何,我希望这对某人有所帮助。
我的页面上有许多不同的不可见 div,其中fb-like
隐藏了按钮。当显示 div 之一时,其中不会fb-like
出现任何按钮。对我有用的解决方案是每次显示不可见的 div 时手动重新启动 FB.init。FB 是一个全局函数,它被添加到您的窗口对象中,因为您通过 url 调用远程 facebook api,例如http://connect.facebook.net/en_US/all.js
. 因此,由于这个远程脚本附加到您的 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
});
您可以将like button html5代码动态添加到DOM,然后再次运行FB解析器以生成like button:
fbbutton.innerHTML = '<div class="fb-like" ... ></div>';
FB.XFBML.parse();