1

Like 按钮插件不会出现,如果它的容器之一是display:none页面加载时,并且稍后使用display:block.

仅在 Firefox(我的版本 15.0.1)中检测到问题。

我能做些什么?

4

6 回答 6

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
于 2012-09-14T20:02:58.783 回答
1

我不知道这个错误(FB 或 FF)的原因是什么,但我已经通过仅在 FF 中默认显示我的元素来解决这个问题:

@-moz-document url-prefix() {#exe-article-social-tools { display: block; }}
于 2012-09-18T20:56:08.320 回答
0

https://developers.facebook.com/docs/reference/javascript/

fb-root 标签

JavaScript SDK 要求页面中存在 fb-root 元素。不得使用 display: none 或 visibility: hidden 隐藏 fb-root 元素,否则 SDK 的某些部分将无法在 Internet Explorer 中正常工作。

于 2013-01-29T06:17:59.253 回答
0

我花了一整天的时间才弄明白,但是使用“测试用户”登录 Facebook 会使点赞按钮不可见。就我而言,我总是在 Firefox 上使用我的测试用户登录,而在 Chrome 中使用我的常规 Facebook 用户注销/登录(我最初认为这是浏览器问题)。

但是,解决方案就像注销测试用户一样简单。

在 FB 文档中指定并非所有功能都为测试用户启用(类似按钮是这些功能之一),但我认为它至少会被渲染。无论如何,我希望这对某人有所帮助。

于 2013-08-04T21:21:37.967 回答
0

我的页面上有许多不同的不可见 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
    });
于 2013-10-29T07:41:23.503 回答
0

您可以将like button html5代码动态添加到DOM,然后再次运行FB解析器以生成like button:

fbbutton.innerHTML = '<div class="fb-like" ... ></div>';
FB.XFBML.parse();
于 2014-09-16T09:54:51.037 回答