Facebook共享按钮呈现不正确

时间:2013-01-16 17:35:54

标签: javascript facebook firefox facebook-javascript-sdk

我使用以下代码获取Facebook分享按钮,Facebook赞,Facebook发送和谷歌+1:

    <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/ar_AR/all.js#xfbml=1&appId=<?php echo Configure::read('FBappId');?>";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
    </script>

<!-- FaceBook SHARE BUTTON HERE -->
    <a name="fb_share"></a>
<!-- End FACEBOOK SHARE -->
    <div class="fb-send" data-href="<?php echo $URL;?>" data-font="tahoma"></div>

    <script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" 
            type="text/javascript">
    </script>
    <div class="fb-like" data-send="false" data-layout="button_count" data-width="" data-show-faces="false" data-font="tahoma"></div>
    <span>
    <!-- Place this tag where you want the +1 button to render -->
    <g:plusone size="medium"></g:plusone>

    <!-- Place this render call where appropriate -->
    <script type="text/javascript">
      window.___gcfg = {lang: 'ar'};

      (function() {
        var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
        po.src = 'https://apis.google.com/js/plusone.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
      })();
    </script>
    </span>

问题是 Facebook分享按钮在iframe中的数量为100,样式的宽度和高度为1000px,并且它会超出预期的视图范围。以下截图将更清楚地解释: enter image description here 顺便说一下:文档是RTL方向,共享按钮应放在其他按钮旁边。屏幕截图是使用FireFox 18.0拍摄的。

3 个答案:

答案 0 :(得分:1)

<fb:share-button type="box_count"></fb:share-button>仅在您想要显示分享按钮的位置使用此选项。

答案 1 :(得分:0)

2天前我的'登录Facebook'按钮发生了同样的事情,不确定这是否是来自FB的错误?

无论如何,我使用CSS hack来修复它......不太理想!

.fb_iframe_widget iframe{width:auto!important; height:auto!important}

答案 2 :(得分:0)

此问题的最终解决方案在以下 link 中进行了演示。基本上,它取决于在Facebook上创建与sharer.php的直接链接。当然,我删除了 RohitKumarChoudhary 回答中所考虑的额外Javascipt链接标记。如下:

<div class="socials">
<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/ar_AR/all.js#xfbml=1&appId=xxxxxxxxxx";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div class="fb-send" data-href="http://quran.2index.net/viewAyah/1933" data-font="tahoma"></div>
<!--<a name="fb_share"></a>--> 
<a href="http://www.facebook.com/sharer.php?app_id=xxxxxxxxxx&sdk=joey&u=http://quran.2index.net/viewAyah/1933&display=popup" target="_blank"><img src="/img/../images/facebook16.png" alt="" />مشاركة</a>


<div class="fb-like" data-send="false" data-layout="button_count" data-width="" data-show-faces="false" data-font="tahoma"></div>
....
</div>